把csv导入到hive表中步骤
本博文解决的问题:
现在我们有一个CSV格式的一个文件download.csv,里面是我们需要的数据,想把数据装入到数据impala数据库中
1.首先整理文本文件
打开download.csv,选择文件,另存为,保存类型:制表符分隔.txt
2.创建表
drop table if exists test.cde_map_info_load; CREATE TABLE test.cde_map_info_load ( sys_sign STRING COMMENT '系统标识', sys_cn_name STRING COMMENT '系统名称', srctab_cd STRING COMMENT '源表英文名', srctab_name STRING COMMENT '源表中文名', clmn_nm STRING COMMENT '字段英文名', clmn_cn_nm STRING COMMENT '字段中文名', srccde_cd STRING COMMENT '源代码值', srccde_desc STRING COMMENT '源代码描述', transfer_type STRING COMMENT '转换类型', code_source STRING COMMENT '码值来源表', code_source_rule STRING COMMENT '码值来源规则', targtab_cd STRING COMMENT '目标代码编号', targtab_name STRING COMMENT '目标代码编号描述', targcde_cd STRING COMMENT '目标代码值', targcde_desc STRING COMMENT '目标代码描述', valid_sts STRING COMMENT '有效状态', create_time STRING COMMENT '创建时间', update_time STRING COMMENT '更新时间' ,code_load_type STRING ) row format delimited fields terminated by '\t' STORED AS TEXTFILE;
3.将文件上传到本地路径下
/BIG_DATA/tmp/zw/newdir/a.txt
4.切换编码格式(文件中含有中文)
piconv -f gb2312 -t UTF-8 a.txt > b.txt
load data local inpath '/BIG_DATA/tmp/zw/newdir/b.txt' into table test.cde_map_info_load;
select * from test.cde_map_info_load limit 100;
如果存在分区,在插入分区表中
insert overwrite test.cde_map_info select * from test.cde_map_info_load
天下难事,必作于易;天下大事,必作于细