将文件加载到表中(load)
LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)]
如果指定关键字 LOCAL,则load 命令将在本地文件系统中查找文件路径。否则,在hdfs上查找文件。
如果使用 OVERWRITE 关键字,则目标表(或分区)的内容将被删除并替换为filepath引用的文件;否则filepath引用的文件将被添加到表中。
文件路径可以是:
相对路径,例如 project/data1
绝对路径,例如 /user/hive/project/data1
带有方案和(可选)权限的完整 URL,例如 hdfs://namenode:9000/user/hive/project/data1
从查询中将数据插入到 Hive 表中(insert)
INSERT OVERWRITE TABLE tablename1 [PARTITION (partcol1=val1, partcol2=val2 ...) [IF NOT EXISTS]] select_statement1 FROM from_statement;
INSERT INTO TABLE tablename1 [PARTITION (partcol1=val1, partcol2=val2 ...)] select_statement1 FROM from_statement;
INSERT OVERWRITE 将覆盖表或分区中的任何现有数据。
INSERT INTO 将追加到表或分区,保持现有数据完整。
创建表并加载数据(as select)
CREATE TABLE [IF NOT EXISTS] table_name AS select_statement;
创建表时通过location指定加载数据路径
例如
create external table if not exists test(id string,name string) row format delimited fields terminated by '\t' location '/test';
import数据到指定的表中
先用export导出(包含元数据信息)后,再将数据用import导入
例如
import table test from '/usr/hive/warehouse/export/test';
test表可以不存在,或存在但没有数据。