hive加载数据方式,导入导出

hive加载数据方式

  1. 建表时加载数据
    (1)location方式,需要提前将本地文件put到hdfs上,而且必须是外部表,否则容易把源文件给删了;
    create table aa(列名 数据类型) row format delimited fields terminated by ‘;’ location ‘hdfds文件路径’;
    (2)导入已有表的数据(不用写字段了)
    create table bb as selecte * from aa;

  2. 建空表后,加载数据
    (1)load添加数据(如果原表已有数据,则另外建立一个文件,而不是把数据追加到源文件中;而且
    自动更新mysql里的元数据),如果不加local,代表从hdfs上加载数据,相当于剪切操作,源文件消失
    load data [local] inpath ‘路径’ [overwrite] into table student [ partition (column=xxx)…];
    (2)insert添加数据,也会单独生成一个文件,并且更新mysql里的元数据
    insert into cc values (列名1,列名2…);
    insert into cc values selecte * from bb;
    (3)将文件put到hdfs的表的文件夹下,不更新元数据,需要修复表来重新读取hdfs上的数据生成新的元数据;
    msck repair table table_name;

数据导入、导出

应用场景:两个hadoop平台集群之间的Hive迁移
导出:
(1)export(包括数据文件和元数据信息文件)
export table table_name to ‘hdfspath’;
(2)hive shell命令

bin/hive -e/-f `select * from table_name;` > /opt/software/stu.txt;
<!--也可以用两个大于号,表示追加-->

(3)insert语句

insert overwrite [local] directory 'path' row format delimited fields terminated by ';' select * from student;

导入(同时有数据文件和元数据信息文件的文件夹才能导入生成表,否则报错;如果表存在且有数据,导入时报错;只有表而没有数据或者没有表都可以导入)
import table table_name from ‘hdfspath’;
(3)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值