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表的字段,它显示的字段要被更改(粗体)

字段名从数据类型转换更改字段名称转换为数据类型
eidinteidint
nameStringenameString
salaryFloatsalaryDouble
designationStringdesignationString
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>
05-28 23:05