1. 程式人生 > >hive常用sql命令

hive常用sql命令

建立表

hive> CREATE TABLE A (a INT, b STRING); 

建立表並建立索引欄位ds

hive> CREATE TABLE A (a INT, b STRING) PARTITIONED BY (ds STRING); 

顯示所有表

hive> SHOW TABLES;

按正條件(正則表示式)顯示錶,

hive> SHOW TABLES '.*s';

表新增一列 

hive> ALTER TABLE B ADD COLUMNS (new_col INT);

新增一列並增加列欄位註釋

hive> ALTER TABLE B ADD COLUMNS (new_col2 INT COMMENT 'a comment');

更改表名

hive> ALTER TABLE A RENAME TO B

刪除列

hive> DROP TABLE A;

元資料儲存

將檔案中的資料載入到表中

hive> LOAD DATA LOCAL INPATH './examples/files/kv1.txt' OVERWRITE INTO TABLE A

載入本地資料,同時給定分割槽資訊

hive> LOAD DATA LOCAL INPATH './examples/files/kv2.txt' OVERWRITE INTO TABLE A PARTITION (ds='2008-08-15');

載入DFS資料 ,同時給定分割槽資訊

hive>

LOAD DATA INPATH '/user/myname/kv2.txt' OVERWRITE INTO TABLE A PARTITION (ds='2008-08-15');

The above command will load data from an HDFS file/directory to the table. Note that loading data from HDFS will result in moving the file/directory. As a result, the operation is almost instantaneous. 

SQL 操作

按先件查詢

hive> SELECT a.foo FROM invites a WHERE a.ds='<DATE>';

將查詢資料輸出至目錄

hive> INSERT OVERWRITE DIRECTORY '/tmp/hdfs_out' SELECT a.* FROM invites a WHERE a.ds='<DATE>';

將查詢結果輸出至本地目錄

hive> INSERT OVERWRITE LOCAL DIRECTORY '/tmp/local_out' SELECT a.* FROM pokes a;