2017-07-17 24 views
0

私はハイブにcsvファイルをロードしようとしています。私はdatetimeカラムとカラムにカンマを含む問題があります。区切り記号も同様です。カンバスとタイムスタンプ付きハイブロード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" 

datetime形式の日付列が必要なため、オープンCSVSerDeを使用することはできません。そしてCSVSerDeは、文字列

でのみ動作します私はROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe' WITH SERDEPROPERTIES ( "separatorChar" = ",", "quoteChar" = "\"" )

を使用しようとしました。しかし、それは、1列にすべてを置きます。

私もこのように試してみた:ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe' WITH SERDEPROPERTIES ( 'serialization.format' = ',', 'field.delim' = ','

この場合、それは最後の列の最初のカンマの前にすべてのものを取ります。

解決策は遠くないと思いますが、私はそれを見つけることができません。あなたはそのフォーマット...ない引用符の間のいずれかのコンマに一致するために正規表現を書くことができれば正規表現SerDeを使用することができるはず任意のヘルプ

答えて

0

を事前に

感謝。

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

グッドラック!

関連する問題