我正在尝试将csv加载到配置单元表中,并且在成功加载后,由于某些列值中的“,”而导致表未正确加载。解决此问题的最佳方法是什么?
create table abc (col1 string, col2 int) row format delimited fields terminated by ',' tblproperties("skip.header.line.count"="1");
CSV示例:-
col1 col2
abc,def 12
erfd 10
load data inpath 'path_to_csv' into table abc;
预期输出是该表已像在csv中一样正确配置在蜂巢中。
答案 0 :(得分:0)
使用以下SERDE:
示例表创建
create table test_hive1(name String, id int)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde';
加载数据
load data local inpath 'filepath' into table test_hive1;
输出
select * from test_hive1;
name id
abc 22
cdf, def 23
dsa 34
答案 1 :(得分:0)
使用OpenCSV Serde
create table abc (col1 string, col2 int) row format
SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde' WITH SERDEPROPERTIES
("escapeChar" = ",") ;
使用命令
将数据加载到表中 load data local inpath 'path_to_csv' into table abc;