Hive用逗号和时间戳加载csv

时间:2017-07-17 12:35:21

标签: csv hive timestamp comma amazon-athena

我尝试将csv文件加载到Hive中。我有包含逗号的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格式的日期列。 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' = ','

在这种情况下,它会占用最后一列中第一个逗号之前的所有内容。

我认为解决方案并不遥远,但我找不到它。

提前感谢任何帮助

1 个答案:

答案 0 :(得分:0)

如果您可以为该格式编写RegEx,则应该可以使用RegEx SerDe ...匹配任何逗号之间的逗号。

org.apache.hadoop.hive.contrib.serde2.RegexSerDe

祝你好运!!!