如何导入数据到hive

你有一些数据在本地,如何导入到hive表呢?hive中有一条命令load data local inpath可以完成这个任务。

假设你的表如下:

create table example (
    name string,
    age int,
    num int,
    desc string
) row format delimited fields terminated by '\t'
stored as textfile;

这个表,规定了字段之间需要用制表符来间隔,所以你的数据应该遵守这个规则。

load data local inpath '${PWD}/data' overwrite into table example;

这句话,就是从你本地文件data中导入数据到你的hive表里。

这就是最简单的数据导入方法,当然了,由于text的格式查询效率比较低,我们可以结合temporary表来从本地数据导入到你规定格式的hive表中。

create tmporary table if not exists tmp_example (
    name string,
    age int,
    num int,
    desc string
) row format delimited fields terminated by '\t'
stored as textfile;
load data local inpath '${PWD}/data' overwrite into table tmp_example;

create table if not exists example (
    name string,
    age int,
    num int,
    desc string
) stored as orcfile;

insert overwrite table example select * from tmp_example;

在上面这个比较长的SQL语句里面,使用临时表来接入本地数据,然后导入orc格式的正式表里,后者具有更好的查询效率,而且当这个语句执行完毕,临时表也被删除了,不会占用存储空间。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值