91.向Hive表加载数据

91.1 演示环境介绍

  • CentOS版本:6.5
  • CM和CDH版本为5.13.1

91.2 操作演示

  • 表结构
CREATE TABLE my_table(
    KEY int, 
    value string
) 
ROW FORMAT DELIMITED 
FIELDS TERMINATED BY ',' 
STORED AS TEXTFILE;
CREATE TABLE my_table1(
    KEY int, 
    age int
) 
ROW FORMAT DELIMITED 
FIELDS TERMINATED BY ',' 
STORED AS TEXTFILE;
  • 数据文件内容:
[root@ip-186-31-6-148 data]# more a.txt 
1,test
2,fayson
3,zhangsan
[root@ip-186-31-6-148 data]# 
  • test_user表数据

Insert方式加载数据

  • insert向Hive表中插入数据可以单条插入和多条插入
insert into my_table values(1,'fayson1'); #单条插入
insert into my_table values(2,'fayson2'),(3,'fayson3'); #多条插入
  • 使用追加的方式从其他表查询相应数据并插入到Hive表中
    • 使用追加的方式将test_user表中id大于3并且小于5的数据插入到my_table表中
INSERT INTO my_table 
   SELECT id,name from test_user WHERE id > 3 and id < 5;
  • 使用覆盖的方式从test_user表查询相应数据并插入到Hive表中
    • 使用覆盖的方式将test_user表中id大于3并且小于5的数据插入到my_table表中
INSERT OVERWRITE TABLE my_table 
   SELECT id,name from test_user WHERE id > 3 and id < 5;
  • 多表插入,将test_user表中的数据分别插入到my_table和my_table1中
    • 将test_user表中id大于4并且小于6的数据,分别插入到my_table和my_table1中
FROM test_user 
  INSERT INTO my_table select id, name where id > 4 and id < 6
  INSERT INTO my_table1 select id, age 
where id > 4 and id < 6;

Load本地数据文件

  • 在命令行使用追加的方式Load本地数据文件到Hive表中
LOAD DATA LOCAL INPATH '/data/a.txt' INTO TABLE my_table;
  • 使用覆盖的方式Load本地数据文件到Hive表中
LOAD DATA LOCAL INPATH '/data/a.txt' OVERWRITE INTO TABLE my_table;

Load HDFS数据文件

  • 将文件put到HDFS的/data目录下
    • 修改/data目录为hive用户
sudo -u hdfs hadoop fs -chown -R hive:hive /data 
  • 在命令行使用追加的方式Load HDFS数据文件到Hive表中
LOAD DATA INPATH '/data/a.txt' INTO TABLE my_table;
  • 在命令行使用覆盖的方式Load HDFS数据文件到Hive表中
LOAD DATA INPATH '/data/a.txt' OVERWRITE INTO TABLE my_table;

总结

  • Load本地数据文件时需要注意文件目录和数据文件的权限,/data目录拥有其它用户的执行权限(x),目录下的数据文件有读权限®,否则会抛如下异常:
“Invalid path ''/data/a.txt'': No files matching path file:/data/a.txt (state=42000,code=40000)”
  • Load HDFS数据文件时需要登录Hive的用户是否有访问该文件的权限
  • Load本地文件时是将数据拷贝至对应表的数据目录下,且文件名不变
  • Load HDFS文件到Hive表时,文件会被Move到对应表的数据目录下,且保持文件名
  • 使用Load命令时如果没有OVERWRITE,会直接APPEND到Hive表中,并且不会去除重复数据

大数据视频推荐:
CSDN
大数据语音推荐:
企业级大数据技术应用
大数据机器学习案例之推荐系统
自然语言处理
大数据基础
人工智能:深度学习入门到精通

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值