我试图将csv文件数据加载到配置单元表中,但它在一列的值中有分隔符(,),因此配置单元将它作为分隔符并将其加载到新列中。我尝试使用转义序列,但我也尝试了转义序列,它不起作用,总是在新的列中加载数据。
我的csv文件:
id,name,desc,per1,roll,age
226,a1,"\"double bars","item1 and item2\"",0.0,10,25
227,a2,"\"doubles","item2 & item3 item4\"",0.1,20,35
228,a3,"\"double","item3 & item4 item5\"",0.2,30,45
229,a4,"\"double","item5 & item6 item7\"",0.3,40,55
我已经更新了我的table
create table testing(id int, name string, desc string, uqc double, roll int, age int)
ROW FORMAT SERDE
'org.apache.hadoop.hive.serde2.OpenCSVSerde'
WITH SERDEPROPERTIES (
"separatorChar" = ",",
"quoteChar" = '"',
"escapeChar" = "\\" ) STORED AS textfile;
但我还是从另一列得到了数据,。
我在路径命令中使用加载数据。
1条答案
按热度按时间rjzwgtxy1#
这是如何基于regexserde创建表。
每列应有相应的捕获组
()
在正则表达式中。您可以轻松地调试regex,而无需使用regex_replace
:结果:
如果看起来不错,请创建表:
阅读本文了解更多细节。