配置单元加载带有逗号和时间戳的csv

7ivaypg9  于 2021-06-26  发布在  Hive
关注(0)|答案(1)|浏览(336)

我尝试将csv文件加载到配置单元中。问题是我有datetime列和包含逗号的列。分隔符也是逗号。

CMBk7Y,HM - PEUVP,promo,11066,FRA,1401445,Asegment_DLBD,1,imp,2017-05-31 22:52:30,"U=dsp=mmh,bid=0000002,adv=189,cpg=3449,str=2117,cre=41836,exc=apn,pub=3296,sit=leboncoin.fr,pag=https%3A//www.leboncoin.fr/materiel_agricoles/%3Fth%3D1%2ot%3D0;ord=909215572"

我不能使用open csvserde,因为我需要datetime格式的date列。csvserde只对字符串起作用
我试着用 ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe' WITH SERDEPROPERTIES ( "separatorChar" = ",", "quoteChar" = "\"" ) 但它把所有的东西都放在一列。
我也试过这样: ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe' WITH SERDEPROPERTIES ( 'serialization.format' = ',', 'field.delim' = ',' )
在这种情况下,它将在最后一列的第一个逗号之前获取所有内容。
我认为解决办法不远,但我找不到。
提前谢谢你的帮助

rxztt3cl

rxztt3cl1#

如果你能为那种格式写一个正则表达式,那么你应该能够使用正则表达式serde…它匹配任何逗号而不是引号之间的逗号。
org.apache.hadoop.hive.contrib.serde2.regexserde
祝你好运!!!

相关问题