HIVE入门_3_数据导入导出

December 17, 2023
测试
测试
测试
测试
6 分钟阅读
  • 数据导出方式
    • 导出到本地文件系统
    • 导出到HDFS上
    • 导出到HIVE的另一个表中
  • 数据导入方式
    • 从本地文件导入
    • 从HDFS上导入
    • 创建表后从别的表查询出的相应数据导入
    • 创建表的时候通过别的表查询记录插入
  • 参考资料

数据导出方式

导出到本地文件系统

hive> insert overwrite local directory '/home/wyp/wyp'
    > row format delimited
    > fields terminated by '\t'
    > select * from wyp;

hive -e "select * from wyp" >> local/wyp.txt

cat wyp.sql
#select * from wyp
hive -f wyp.sql >> local/wyp2.txt

导出到HDFS上

hive> insert overwrite directory '/home/wyp/hdfs'
    > select * from wyp;

导出到HIVE的另一个表中

hive> insert into table test
    > partition (age='25')
    > select id, name, tel
    > from wyp;

数据导入方式

从本地文件导入

hive> create table wyp
    > (id int, name string,
    > age int, tel string)
    > ROW FORMAT DELIMITED
    > FIELDS TERMINATED BY '\t'
    > STORED AS TEXTFILE;

cat wyp.txt
#1       wyp     25      13188888888888
#2       test    30      13888888888888

load data local inpath 'wyp.txt' into table wyp;

dfs -ls /user/hive/warehouse/wyp ;

从HDFS上导入

从本地文件系统将数据导入到HIVE表的过程中,其实是现将数据临时复制到HDFS下面的一个目录,然后再将数据从临时目录下移动到对应HIVE表的数据目录中。 因此,HIVE也支持将数据直接从HDFS上的一个目录移动到相应HIVE表的目录中去。

和本地文件系统导入的区别只是是否有inpath

load data inpath '/home/wyp/add.txt' into table wyp;

创建表后从别的表查询出的相应数据导入

hive> create table test(
    > id int, name string
    > ,tel string)
    > partitioned by
    > (age int)
    > ROW FORMAT DELIMITED
    > FIELDS TERMINATED BY '\t'
    > STORED AS TEXTFILE;

hive> insert into table test
    > partition (age='25')
    > select id, name, tel
    > from wyp;

##动态指明分区
hive> set hive.exec.dynamic.partition.mode=nonstrict;
hive> insert into table test
    > partition (age)
    > select id, name,
    > tel, age
    > from wyp;

#overwrite方式重写原来的数据
hive> insert overwrite table test
    > PARTITION (age)
    > select id, name, tel, age
    > from wyp;

#多表插入,只需要扫描一遍数据生成需要的各种表
hive> from wyp
    > insert into table test
    > partition(age)
    > select id, name, tel, age
    > insert into table test3
    > select id, name
    > where age>25;

创建表的时候通过别的表查询记录插入

hive> create table test4
    > as
    > select id, name, tel
    > from wyp;

参考资料

  1. 过往记忆的blog

继续阅读

更多来自我们博客的帖子

如何安装 BuddyPress
由 测试 December 17, 2023
经过差不多一年的开发,BuddyPress 这个基于 WordPress Mu 的 SNS 插件正式版终于发布了。BuddyPress...
阅读更多
Filter如何工作
由 测试 December 17, 2023
在 web.xml...
阅读更多
如何理解CGAffineTransform
由 测试 December 17, 2023
CGAffineTransform A structure for holding an affine transformation matrix. ...
阅读更多