Hive使用逗号和时间戳加载csv
问题描述:
我尝试将csv文件加载到Hive中。我有datetime列和包含逗号的列的问题。分隔符和逗号一样。Hive使用逗号和时间戳加载csv
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"
我不能使用打开的CSVSerDe,因为我需要日期时间格式的日期列。而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' = ','
)
在这种情况下,它发生在最后一列第一个逗号之前的一切。
我认为解决方案并不遥远,但我找不到它。
在此先感谢您的帮助
答
您应该能够使用正则表达式SERDE如果你可以写为格式的正则表达式...这对任何逗号没有引号之间的匹配。
org.apache.hadoop.hive.contrib.serde2.RegexSerDe
好运!