<------ 导入 ------>
- 从本地目录文件导入Hive表
语法:LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)]
LOCAL : 区分是从本地,还是HDFS 导入
OVERWRITE : 表示重写;不加,表示追加写入
PARTITION(par1='val1') : 指定分区
步骤:
1. 新建一张Hive表,列分隔符指定是 ” “
use default; drop table if exists kimbo_test; create table kimbo_test ( id int comment '主键ID', name string comment '名称' )ROW FORMAT DELIMITED FIELDS TERMINATED BY ' ' LINES TERMINATED BY ' ' STORED AS TEXTFILE ;
2. 创建文件,并写入内容,列分隔用 ” “
vi kimbo_test.txt
3. 导入数据
Hive 模式: load data local inpath '/home/zhangshaosheng/kimbo_test.txt' overwrite into table default.kimbo_test;
命令行模式: hive -S -e "load data local inpath '/home/zhangshaosheng/kimbo_test.txt' overwrite into table default.kimbo_test;"
- 从已有的表导入数据
-- 创建临时表,只有表结构 use default; drop table if exists kimbo_test2 ; create table kimbo_test2 as select * from default.kimbo_test where 1=0; -- 创建临时表,插入数据 use default; drop table if exists kimbo_test3 ; create table kimbo_test3 as select * from default.kimbo_test;
- 插入单条数据
Hive 模式: insert into table kimbo_test values (40,'南京');
<------ 导出 ------>
- 从Hive查询表数据,导出到本地目录文件,跟HDFS的目录结构一致
Hive 模式: insert overwrite local directory '/home/zhangshaosheng/test3' select * from default.kimbo_test;
- 从Hive查询表数据,直接导出到文件中(本人常用)
命令行模式: hive -S -e "select * from default.kimbo_test; " >kimbo_test7.txt