本博文解決的問題:
現在我們有一個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