hive建立外部表,匯入資料

2021-09-22 10:06:46 字數 2014 閱讀 9717

在hdfs建立分割槽,並存有檔案

手工建立或者由程式在hdfs上生成了分割槽目錄,每個分割槽目錄下有相應的檔案。

vi test.txt

2;lily;1991;shanghai

3;jack;1992;guangxi

4;jenny;1999;xinjiang

5;jay;1995;xizang

6;tom;1990;beijing

7;lily;1991;shanghai

8;jack;1992;guangxi

9;jenny;1999;xinjiang

10;jay;1995;xizang

2. 建立hive外部表(建表語句沒有用location直接關聯hdfs檔案)

根據hdfs上的原始檔裡面的資料格式,建立hive外部表。

create external table if not exists persion (

seq int comment 『客戶編號,主鍵』,

name string comment 『姓名』,

year int comment 『年齡』,

city string comment 『城市』)

partitioned by (day int)

row format delimited

fields terminated by 『\073』

stored as textfile;

原始檔裡面列之間的分隔符是分號,hive裡面分號是特殊符號(命令執行結束符),如果建表語句裡面用分號則會出錯,使用分號的ascii碼』\073』(這裡用了八進位製碼)則正常。

檢視t3的表結構:

hive> desc persion;

okseq int 客戶編號,主鍵

name string 姓名

year int 年齡

city string 城市

day int

**已經成功建立。

3.關聯hdfs檔案

hive並不會自動關聯hdfs中指定目錄的partitions目錄,需要手工操作。

通過給已經建立的表增加分割槽資料的方式,與hdfs上的檔案相互關聯起來。

語法格式:

alter table 表名稱 add partition (分割槽名1=分割槽值1,…) location 『hdfs上的檔案的路徑』;

hive> alter table persion add partition (day=20) location 『/data/test/』;

oktime taken: 0.157 seconds

執行下面命令,檢視**可以發現資料已經匯入。

hive> select * from persion;

4.之後hdfs分割槽新增新檔案,hive會自動關聯

如果這個時候往hdfs上面的分割槽增加乙個檔案(符合t3**式),hive表也可以自動讀取到並新增資料。

如新建乙個檔案b.txt,內容是:1101;jayfef;2095;bbbb

上傳到hdfs的day=21分割槽:

[hdfs@master01 data]$ hadoop fs -put /data/a.txt /data/test/

直接檢視**,可以看到新的資料也已經新增進去。

hive> select * from persion;

ok1101 jayfef 2095 bbbb 20

2 lily 1991 shanghai 20

3 jack 1992 guangxi 20

4 jenny 1999 xinjiang 20

5 jay 1995 xizang 20

6 tom 1990 beijing 20

7 lily 1991 shanghai 20

8 jack 1992 guangxi 20

9 jenny 1999 xinjiang 20

10 jay 1995 xizang 20

time taken: 0.451 seconds, fetched: 10 row(s)

Hive建立外部表

hive建立外部表 1.環境需求 hadoop 2.6.0 hive 1.2.1 hue 3.7.0 2.開發過程 1 建立hdfs目錄 hadoop dfs mkdir wy input 2 上傳本地資料到hdfs中 hadoop dfs put usr wy writing.txt wy inp...

HIVE建立外部表

基礎建表語句 create external table if not exists table name col name data type comment col comment comment table comment partitioned by col name data type c...

Hive建立表以及匯入資料

建表 內錶 create table test user base name string comment name value workid string comment workid value age string comment age value string comment value ...