准备工作
先将表中的数据清除,由于是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;
输出:
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;
输出:
2.直接put数据到location对应表
2.1 先清空数据
INSERT overwrite table audi select * FROM audi WHERE `model` = NULL ;
SELECT * FROM audi;
输出结果:
2.2 查看表的详细信息
定位表的location位置
describe formatted audi ;
部分结果:
2.3 直接上传数据到指定位置
需要先建立好相应的表
dfs -put /root/data/audi_202204220558.csv /user/hive/warehouse/hive_test_one.db/audi;
SELECT * FROM audi;
输出结果:
3 .Import 数据到指定 Hive 表
3.1 先将表中的数据导出
export table audi to '/exportaudi';
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 ;
输出结果:
3.4 import方式新增表类型
describe formatted auditmp ;
输出结果:依然是一个外部表