把Excel、CSV导入到HIVE中
这里以Excel为例,csv与Excel类似
先把Excel导出为txt格式的文本文件
表如下显示,数据为真实数据已做处理:
身份证 | 姓名 | 性别 | 所在地 | 手机号码 | 单位名称 |
210504********131X | 刘*鹏 | 男 | 海曙区 | 1365574**** | 宁波市海曙****服装店 |
330203********2730 | 黄*明 | 男 | 海曙区 | 1560661**** | 宁波市海曙**安装队 |
330203********1530 | 陈小* | 男 | 江北区 | 1370574**** | 宁波****有限公司 |
330203********2733 | **云 | 男 | 海曙区 | 宁波市海曙****机械厂 | |
330203********0317 | 姜永* | 男 | 鄞州区 | 1595885**** | 宁波市北仑区****有限公司 |
把表另存为txt格式:
xxx.txt如下图
这里需要注意两点:在保存文件的时候(这里推荐使用Notepad++)
- 把编码改成UTF-8 - 点击【编码】-> 选择【UTF-8】
- 把文档格式转换成Unix - 点击【编辑】-> 选择【文档格式转换】-> 选择【转为Unix】
你可以先不管这个,但是你还是会回来的。。。
把处理后的文件放到服务器上
这里根据需求,把处理后的txt文件放到服务器上。
这里笔者试用的SSH连接的Linux系统。
在hive中 建立相对应的表
在hive环境下执行如下语句:
create table default.tmp_xzy (
sfz STRING COMMENT '身份证', xm STRING COMMENT '姓名',
xb STRING COMMENT '性别', dylqd STRING COMMENT '待遇领取地',
sjhm STRING COMMENT '手机号码',dwmc STRING COMMENT '单位名称'
) row format delimited
fields terminated by '\t' -- 列与列用 制表符 分割
lines terminated by '\n' -- 行与行用 回车符 分割
stored as textfile;
导入文件服务器中的txt文件
在hive环境下执行如下语句把文本文件导入hive中:
load data local inpath '/home/xzy/xxx.txt' overwrite into table default.tmp_xzy;
查看数据,验证成果
在hive环境下执行语句,查询数据。
select * from default.tmp_xzy
结果正确。
事实证明不需要把字段名加上
如果乱码,请回去看保存txt的注意事项。
清除表数据
如果 出现问题 可以清除表的数据,以便重新导入数据;或删表重建。
-- 方法一
truncate table default.tmp_xzy; -- 清除表数据
-- 方法二
drop table default.tmp_xzy; -- 删表,重建
注意:这里不能使用delete
hive不支持 delete from 表名 where 1 = 1 ;