1. 程式人生 > >Hive初識(一)

Hive初識(一)

LOAD DATA語句

一般來說,在SQL建立表後,我們就可以使用INSERT語句插入資料。但在Hive中,可以使用LOAD DATA語句來插入資料。

LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION(partcol1=val1,partco2=val2...)]

LOCAL是識別符號指定本地路徑。它是可選的。

OVERWRITE是可選的,覆蓋表中的資料。

PARTITION這是可選的。

如將/home/user目錄中名為sample.txt的檔案的資料插入到表中

1201  Gopal       45000    Technical manager
1202  Manisha     45000    Proof reader
1203  Masthanvali 40000    Technical writer
1204  Kiran       40000    Hr Admin
1205  Kranthi     30000    Op Admin

下面的查詢載入給定文字插入表中。

LOAD DATA LOCAL INPATH '/home/user/sample.txt' OVERWRITE INTO TABLE employee;

下載成功完成,能看到以下回應。

OK
Time taken: 15.905 seconds
hive>


ALter Table語句

它在Hive中用來修改的表。

語法

宣告接受任意屬性,我們希望在一個表中修改以下語法。

ALTER TABLE name RENAME TO new_name
ALTER TABLE name ADD COLUMNS (col_spec[,col_spec...])
ALTER TABLE name DROP [COLUMN] column_name
ALTER TABLE name CHANGE column_name new_name new_type
ALTER TABLE name REPLACE COLUMNS (col_spec[,col_spec])

Rename To...語句

下面是查詢重命名錶,把employee修改為emp。

hive> ALTER TABLE employee RENAME TO emp;

Change語句

下表包含employee表的欄位,它顯示的欄位要被更改(粗體)

欄位名 從資料型別轉換 更改欄位名稱 轉換為資料型別
eid int eid int
name String ename String
salary Float
salary Double
designation String designation String
ALTER TABLE employee CHANGE name ename String;
ALTER TABLE employee CHANGE salary salary Double;


新增列語句

下面的查詢增加了一個列明dept在employee表。

 ALTER TABLE employee ADD COLUMNS (dept STRING COMMENT 'Department name');


REPLACE語句

以下從employee表中查詢刪除的所有列,並使用em替換列:

ALTER TABLE employee REPLACE COLUMNS (eid INT empid Int,ename STRING name String);


Drop Table語句

語法:

Drop Table [IF EXISTs] table_name;

以下查詢刪除一個名為employee的表:

DROP TABLE IF EXISTS employee;

對於成功執行查詢,能看到以下回應:

OK
Time taken: 5.3 seconds
hive>