1. 程式人生 > >hive建立表格,簡單建立及複雜建立(指定分隔符,儲存格式、分割槽等)

hive建立表格,簡單建立及複雜建立(指定分隔符,儲存格式、分割槽等)

1、hive表格簡單建立
create table test(id int,name string,tel string)
然後show tables 就可以檢視到已建立的表格了2、指定分隔符儲存格式
create table test(id int, name string ,tel string) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'LINES TERMINATED BY '\n'STORED AS TEXTFILE;其中,FIELDS TERMINATED BY '\t' 是指定欄位分隔符也可用用其他符號如“,”,“|”等等,LINES TERMINATED BY '\n'是指定行分隔符(一般不寫,預設是換行符)3、指定儲存格式
create table test(id int, name string ,tel string)
STORED AS TEXTFILE;
上面語句就是建立文字格式的表格,一般如果叢集的hdfs沒有設定檔案格式,hive表格預設的便是txt文字格式的,可通過命令Hadoop fs -cat /表格目錄/*   (*或者檔名)檢視到檔案的內容。hive表格也可以設定其他格式,STORED AS SEQUENCEFILE 設定為sqquencefile格式;STORED AS RCFILE 設定為rcfile格式;要根據需求不同設定不同的儲存格式,而且每種儲存格式的優勢是不相同的,在此不討論。4、指定儲存目錄
create table test(id int,name string,tel string)  
ROW FORMAT DELIMITED 
FIELDS TERMINATED BY '\t' 
STORED AS TEXTFILE 
LOCATION '/data/test'; 
上面語句中LOCATION '/data/test' 便是指定了表格在hdfs儲存的目錄,建表完成可在/data/下看到已建立test目錄,指定目錄一般在大型叢集上比較常用的,因為叢集的規模越大,使用者就越多,叢集管理者便會對使用者做許可權管理,許可權管理中必定會涉及對hdfs的目錄進行管理,這個時候使用者可能沒有預設warehouse目錄的許可權了,建表便需要指定表格目錄了5、指定分割槽
create table test(id int, name string ,tel string) 
partitioned by (age int) 
ROW FORMAT DELIMITED 
FIELDS TERMINATED BY '\t' 
STORED AS TEXTFILE
partitioned by (age int)語句便是指定age欄位為分割槽欄位
create table test(id int, name string ,tel string) 
partitioned by (age int,class string) 
ROW FORMAT DELIMITED 
FIELDS TERMINATED BY '\t' 
STORED AS TEXTFILE
上面語句指定了age,class兩個分割槽欄位,分割槽其實對應hdfs上的目錄結構,如有一個age分割槽,表格的資料便儲存在“表格目錄/age”中,兩個分割槽age,class,表格資料便儲存在“表格目錄/age/class”中;合理的分割槽在資料量大的表中是必要的,一本可以優化表格資料的查詢速度,可可以對數進行簡單的分類,一般大資料量的表中必有時間欄位的分割槽6、建立外部表
create EXTERNAL table test(id int, name string ,tel string) 
partitioned by (age int) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS TEXTFILE;
外部表其實跟內部表格沒有太大的區別,多了EXTERNAL關鍵字,外部表可以對映到其他目錄,alter table test add partition (age=17) location '/user/oi/ts/17'; 這樣便把ts目錄下的資料對映到了test表中,可以查到資料select * from test where test=17; 當然前提是外部目錄下的資料格式要與表格的格式一直,如上,17目錄下的資料必須是三個欄位的,且是逗號分割的,文字檔案;外部表格在刪除表格的時候,並不會刪除資料,外部表格可以建立在已存在的目錄或檔案上,更加靈活7、建立桶表 bucket table
create table test(id int,name string)
CLUSTERED BY(id) SORTED BY(name) INTO 32 BUCKETS    
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t';
桶是更為細粒度的資料範圍劃分,它能使一些特定的查詢效率更高,
比如對於具有相同的桶劃分並且jion的列剛好就是在桶裡的連線查詢,還有就是示例資料,
對於一個龐大的資料集我們經常需要拿出來一小部分作為樣例,然後在樣例上驗證我們的查詢,優化我們的程式。


相關推薦

hive建立表格簡單建立複雜建立指定分隔符儲存格式分割槽

1、hive表格簡單建立create table test(id int,name string,tel string)然後show tables 就可以檢視到已建立的表格了2、指定分隔符儲存格式create table test(id int, name string ,t

c#關於網頁內容抓取簡單爬蟲的實現。包括動態靜態的

整理一下最近做的幾個專案。總結幾個用到的知識點和關鍵部分程式碼,以供大家學習交流。 1、爬蟲抓取網頁內容資訊。可以用System.Net.WebRequest、webclient等類來處理。 2、對於某些動態網頁,生成頁面信心由javascript動態生成連結資訊的。也可以

數據查詢簡單查詢高級查詢

最小 最大 sum() and 離散 沒有 民族 結果 nbsp 查詢所有列1.select * from info查特定列2.select code,name from info查出列後加別名,再查姓名3.select code as ‘代號‘,name as ‘姓名‘

用java編寫spark程式簡單示例執行

最近因為工作需要,研究了下spark,因為scala還不熟,所以先學習了java的spark程式寫法,下面是我的簡單測試程式的程式碼,大部分函式的用法已在註釋裡面註明。 我的環境:hadoop 2.2.0                    spark-0.9.0  

Oracle中如何建立約束查詢約束和刪除約束check約束外來鍵和主鍵約束

Oracle  建立主鍵,外來鍵, check約束的幾種方法:(write by RFH) 1. 在建立表時建立約束: //新增主鍵約束 Create table userinfo (userid number(20)constraint  pk_user  primary

sort()的用法參數以排序原理轉載

comment https params HA 排序函數 根據 字符 type ring sort() 方法用於對數組的元素進行排序,並返回數組。默認排序順序是根據字符串Unicode碼點。語法:arrayObject.sort(sortby);參數sortby可選。規定排

將字符串轉成整數的函數給我看一下嗎簡單看一下代碼基本功。要求:不要調用parseInt轉換函數

main 一段 ack substr date tin || parse pre 為了提高面試流程效率,方便用java寫一段將字符串轉成整數的函數給我看一下嗎,簡單看一下代碼基本功。 要求:不要調用parseInt等轉換函數。按位讀取字符串裏的字符進行處理將字符串轉化為整數

scrapy簡單入門例項講解

初識Scrapy Scrapy是一個用於Web網站抓取的應用框架,輸出的結構化資料可以廣泛用於各類程式,比如:資料探勘、資料處理、資料存檔等 儘管Scrapy是為Web抓取設計的,但也可以用於從API中提取資料 通過一個例項認識spider 為了快速認識S

從0到1學習Vue.js包含例子實戰專案

前端三巨頭:React、Angular、Vue。沒錯,什麼jQuery,seaJs,gulp等都逐漸脫離了熱點。面試的時候不吹上一點新技術,好像自己就不是搞前端的似的。當然,希望大家都是抱著好學的心來開始一門學藝的,不管怎樣,請接著看下去吧。 本系列文將會通過很

從0到1學習Vue.js包含例子實戰專案

上一篇文章中,我們初步瞭解單頁面元件這個概念,現在通過一個專案,來進一步解析元件的應用。 需求背景 元件庫是做UI和前端日常需求中經常用到的,把一個按鈕,導航,列表之類的元素封裝起來,方便日常使用,呼叫方法只需直接寫上<qui-button><

分享知識-快樂自己:Oracle基本語法建立:表空間使用者授權約束使用指南

--2.1)建立主鍵約束-- alter table Student add constraint PK_Student_StuId primary key(StuId); alter table StuClass add constraint PK_StuClass_ClassId primar

簡單的輪播圖單張顯示無特效

HTML: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> <

Java8利用stream對集合的複雜操作順序處理並行處理

又是一個很平常的週六,習慣性地來到公司,中午看了會Java8實戰,發現其中講到Stream實現集合的複雜操作,於是自己動手寫了個Demo,並測試了下效率。 結果是並行處理的效率遠遠高於順序處理。可能與我在公司用的電腦有關(我用的是8核)。 話不多說,直接放程式碼: pa

Jmeter簡單介紹環境配置

Jmeter介紹 apache jmeter是100%的java桌面應用程式,jmeter可以模擬大量的伺服器負載、網路負載、軟體物件負載,通過不同的載入型別全面測試軟體的效能。並且jmeter提供圖形化的效能分析。 優點:小巧,不需要安裝,但需要JDK環境,因為它是使用java開

排序演算法--時間複雜平均時間最壞情況空間複雜

1、時間複雜度:一般情況下,演算法中基本操作重複執行的次數是問題規模n的某個函式f(n),演算法的時間量度記作:                                            

appium安裝初級使用mac電腦python

1.安裝jdk 2.安裝sdk,這裡選擇直接安裝android studio 3.配置環境 終端輸入touch .bash_profile建立 輸入open .bash_profile開啟檔案將下面的內容寫進去 export ANDROID_HOM

網站開啟速度慢的原因排查方法優化方法大全

如果你的網站開啟速度過慢,而你又不知道該如何解決,那麼這篇文章是非看不可了。手把手的教你如何排查網站開啟慢的原因,以及優化方法。 排查網站開啟速度慢的原因: 1網站伺服器速度或租用空間所在伺服器速度伺服器空間速度是網站開啟速度快的硬體基礎,也是先決條件。否則即使你網站頁面設

近代/現代文學家著作諾貝爾獎

文學/歷史/哲學,三個學科;研究歷史和哲學。 文學與電影,文娛產業。   "唐詩、宋詞、元曲、明清小說"為我國古代文學藝術寶庫中四顆璀燦的明珠,也是世界藝術之林中的寶貴財富。中國文學從詩經、楚辭、先秦散文、漢賦到唐詩、宋詞、元曲以至明清小說,構成了一卷幾千年中華文化的發展

Nodejs 入門祕籍搭一個最簡單的web伺服器。菜鳥的你也能秒懂

心血來潮,總結了一個Nodejs入門祕籍。看了你就想學NodeJs了。一、簡單介紹nodejs初學nodejs  ,直接上簡單例項。先簡單說明一下:nodejs ,nodejs相當於伺服器端的 可以輕易搭建一個伺服器端。 nodejs是用C++開發的一種運行於伺服器端的語言

Android開發使用Intent傳遞複雜資料List集合Map

Intent(意圖)在Android開發中是用於在各個Activity之間傳輸資料用的。它可傳輸的資料形式主要有以下幾種:1、簡單資料。(使用Bundle即可)2、陣列。3、List集合。4、Map<String, Object>。(可以放在一個List集合裡傳輸