0
text
ファイルからHive外部テーブルに以下のデータを解析してロードしようとしています。ハイブ:エスケープ文字やその他の特殊文字も含むパイプ区切りデータの解析
例。データ:
"100'082 \"|"ABC~01"|"Mana|ger1 \"|"[email protected]'a`il.com"
クエリの下に使用するには:
create external table test3
(EmpID STRING,
EmpName STRING,
Designation STRING,
Email STRING)
ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.MultiDelimitSerDe'
WITH SERDEPROPERTIES ('field.delim'='"|"')
STORED AS TEXTFILE
location '/home/hdp/samplefiles'
tblproperties ('skip.header.line.count'='1');
データは
| "100'082 \ | ABC~01 | Mana|ger1 \ | [email protected]"a`il.com" |
として表にロードされたしかし、私はせずに、この
| 100'082 \ | ABC~01 | Mana|ger1 \ | [email protected]"a`il.com |
のようなデータが必要cの開始時に二重引用符olumn1とcolumn4
おかげでアミットは、私は、例えば、データの結果を得ました..しかし、私の生産データにいくつかのいくつかの二重引用符の間で存在していますこの「ABC01する@ M」のようなデータa'il.com」。このため任意の解決策はあります。karthik16 @ – karthik16
。ビルトインOpenCSVSerdeはopencsvライブラリを使用して、それは二重引用符のさえnumersを扱うことができるように見えます。以降の例ではあなたは "ABC01 @ m" a'il.com "の上に与えて、二重引用符の奇数があります。つまり、終わり引用符がないぶら下げ引用符があります。これらの状況は、スパーク2以上で完全に処理されます。スパークでは、これらすべてのシナリオを処理できるdatabricks csv libraryを使用しています。 databricks csvライブラリを使用して、カスタムserdeを作成できます。 –
はもう一度感謝アミットは、databricks CSVライブラリが内部的にあなたのserdeを作成するためのuniVocity CSV parsers.Use uniVocityを使用しています.. databricks CSVライブラリとの情報については – karthik16