Hive 数据导入和导出

一、数据导入

1.1 load 命令

LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)]
  • local:表示从本地加载数据到 hive 表;否则从 HDFS 加载数据到 hive 表
  • overwrite:表示覆盖表中已有数据,否则表示追加
  • partition:表示上传到指定分区

如:

# 加载本地文件
load data local inpath '/opt/module/data/student.txt' into table default.student;

# 加载HDFS上的文件
load data inpath '/user/hive/student.txt' into table default.student;

# 加载表中数据覆盖已有数据
load data inpath '/user/hive/student.txt' overwrite into table default.student;

1.2 通过查询语句向表中插入数据

insert overwrite table student partition(month='201708')
  select id, name from student where month='201709';

1.3 在创建表的时候根据查询结果直接插入

create table if not exists student3 
  as select id, name from student;

1.4 import 导入

import table student2 partition(month='201709') from '/user/hive/warehouse/export/student';

二、数据导出

2.1 insert 导出

# 将查询结果导出到本地
insert overwrite local directory '/opt/module/data/export/student'
  select * from student;

# 将查询结果格式化导出到本地
insert overwrite local directory '/opt/module/data/export/student1'
  ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' 
  select * from student;

以上语句去掉 local 关键字会导出到HDFS上。

2.2 HDFS 命令导出

dfs -get /user/hive/warehouse/student/month=201709/000000_0 /opt/module/data/export/student3.txt;

2.3 Hive Shell 命令导出

bin/hive -e 'select * from  default.student;' > /opt/module/data/export/student4.txt;

2.4 export 导出

export table default.student to '/user/hive/warehouse/export/student';

2.5 Sqoop 导出

详见Sqoop安装以及使用

点个赞呗:程序员虾说 » Hive 数据导入和导出

赞 (0) 打赏

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

请作者喝杯咖啡~

支付宝扫一扫打赏

微信扫一扫打赏