Hive 五种数据导入方式介绍

问题导读:

        1、Hive五种数据导入方式有哪些?

        2、导入表命令中有无LOCAL关键字的区别?

        3、使用OVERWRITE或INTO关键字的作用及区别?

        4、INPATH路径的限制?

        5、什么是动态分区插入?

        6、动态分区插入需要做哪些设置?

内容:

       既然Hive没有行级别的数据插入、更新和删除操作,那么往表中装载数据的唯一途径就是使用一种”大量“的数据装载操作。我们以如下格式文件演示五种数据导入Hive方式    

Tom         24    NanJing   Nanjing University
Jack        29    NanJing   Southeast China University
Mary Kake   21    SuZhou    Suzhou University
John Doe    24    YangZhou  YangZhou University
Bill King   23    XuZhou    Xuzhou Normal University

数据格式以\t分隔,分别表示:姓名、年龄、地址、学校

一、从本地文件系统中导入数据

       (1) 创建test1测试表

hive> CREATE TABLE test1(name STRING,age INT, address STRING,school STRING)
    > ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
    > STORED AS TEXTFILE ;
OK
Time taken: 0.078 seconds

     (2) 从本地加载数据 

hive> LOAD DATA LOCAL INPATH "/home/hadoopUser/data/test1.txt"
    > INTO TABLE test1;
Copying data from file:/home/hadoopUser/data/test1.txt
Copying file: file:/home/hadoopUser/data/test1.txt
Loading data to table hive.test1
Table hive.test1 stats: [numFiles=1, numRows=0, totalSize=201, rawDataSize=0]
OK
Time taken: 0.364 seconds
     (3) 查看导入结果

hive> select * from test1;
OK
Tom     24    NanJing Nanjing University
Jack    29    NanJing Southeast China University
Mary Kake       21    SuZhou  Suzhou University
John Doe        24    YangZhou        YangZhou University
Bill King       23    XuZhou  Xuzhou Normal University
Time taken: 0.533 seconds, Fetched: 5 row(s)
        注意: 此处使用的是LOCAL,表示从本地文件系统中加载数据到Hive中,同时没有OVERWRITE关键字,仅仅会把新增的文件增加到目标文件夹而不会删除之前的数据。如果使用OVERWRITE关键字,那么目标文件夹中之前的数据将会被先删除掉。

二、从HDFS文件系统加载数据到Hive

        (1) 清空之前创建的表中数据

insert overwrite table test1  select * from test1 where 1=0;  //清空表,一般不推荐这样操作
        (2) 从HDFS加载数据

hive> LOAD DATA INPATH "/input/test1.txt"
    > OVERWRITE INTO TABLE test1;
Loading data to table hive.test1
rmr: DEPRECATED: Please
  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值