1. 导出
1.1 导出到本地文件系统
hive> INSERT OVERWRITE LOCAL DIRECTORY '/data/hadoop/output' ROW FORMAT DELIMITED FIELDS TERMINATED by ',' select * from bsm_basic;
生成的文件如下:
-rw-r–r-- 1 root root 607896437 Oct 15 10:51 000000_0
-rw-r–r-- 1 root root 603648931 Oct 15 10:51 000001_0
-rw-r–r-- 1 root root 598664449 Oct 15 10:51 000002_0
-rw-r–r-- 1 root root 597836743 Oct 15 10:51 000003_0
1.2 导出到HDFS
导入到HDFS和导入本地文件类似,去掉HQL语句的LOCAL就可以了
hive> INSERT OVERWRITE DIRECTORY '/home/hadoop/hdfs select * from bsm_basic;
1.3 使用hive的 -e 和 -f 参数来导出数据
其中-e 表示后面直接接带双引号的sql语句;而-f是接一个文件,文件的内容为一个sql语句
hive -e "select * from basic.bsm_basic" >> /data01/hadoop/output/bsm_basic.txt
2. 导入
2.1 导入本地文件
hive> LOAD DATA LOCAL INPATH '/home/hadoop/bsm_basic.txt' INTO TABLE bsm_basic PARTITION(create_time='2019-10-15 11:22:27');
2.2 导入hive表
hive> INSERT INTO TABLE bsm_basic PARTITION(create_time='2019-10-15 11:22:27') select vehicleId, speed, longitude, latitude, gpstime from testB where vehicleId = "99886691";
2.3 导入hdfs文件
hive> LOAD DATA INPATH '/home/hadoop/source.txt' INTO TABLE bsm_basic PARTITION(create_time='2019-10-15 11:22:27');