Part5--Hive数据导入

准备工作

​ 先将表中的数据清除,由于是external修饰的外部表不能直接使用truncate删除表中数据,否则报错

INSERT overwrite table audi  select * from audi WHERE `model` = NULL ;
SELECT * FROM audi ;

1.load加载数据

1.1 从本地读取数据

​ 使用local表示从系统导入数据

load data local inpath  "/root/data/audi_202204220558.csv" into table audi_test_one ;
select * FROM audi_test_one limit 10;

​ 输出:

image-20220423185450410

1.2 从hdfs上读取数据

--删除表中的数据,这里不能对外部表使用truncate
INSERT overwrite table audi select * FROM audi WHERE `model` = NULL ;
SELECT * FROM audi ;
--从hdfs上读取数据
load data inpath "/HadoopFileS/DataSet/MLdataset/audi_202204220558.csv" into table audi ;
SELECT * FROM audi limit 10;

​ 输出:

image-20220423190208388

2.直接put数据到location对应表

2.1 先清空数据

INSERT overwrite table audi select * FROM audi WHERE `model` = NULL ;
SELECT * FROM audi;

​ 输出结果:

image-20220423191218660

2.2 查看表的详细信息

​ 定位表的location位置

describe formatted audi ; 

​ 部分结果:

image-20220423190907441

2.3 直接上传数据到指定位置

需要先建立好相应的表

dfs -put /root/data/audi_202204220558.csv /user/hive/warehouse/hive_test_one.db/audi;
SELECT * FROM audi;

​ 输出结果:

image-20220423191315744

3 .Import 数据到指定 Hive 表

3.1 先将表中的数据导出

export table audi to '/exportaudi';

image-20220423192958148

3.2 删除表中的数据

INSERT overwrite table audi select * FROM audi WHERE `model` = NULL ;

​ 内部表使用即可

TRUNCATE table audi;

3.3 导入数据到表的指定位置

​ 该方式会创建一个表,如果向已经存在的表导入数据会有如下报错

Table exists and contains data files

import table auditmp from '/exportaudi';
SELECT * from auditmp  ;

​ 输出结果:

image-20220423193721848

3.4 import方式新增表类型

describe formatted auditmp ;

​ 输出结果:依然是一个外部表

image-20220423194002012

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值