2017-02-13 3 views
0

での列からXMLを爆発:豚は、私はこのようになりますハイブテーブル内のデータを持っているHCat

col1 | col2 
12345  <AnXMLElement><AChildElement1>2</AChildElement1><AChildElement2>4</AChildElement2></AnXMLElement> 

私は2番目の列を取り、そのような要素にそれを爆発したい:

col1 | col2 | AChildElement1 | AChildElement2 
12345 <OriginalData>  2     4 

これをCSVファイルに書き出します。

Hive/Hcatローダーを使用してデータを取り込み、これらの2つの列にフィルタリングすることはできますが、XPathまたはXMLoaderを使用して既にフィルタリングされた結果セットの列を読み込む方法が混乱します。 XPathまたはXMLoaderを使用してファイルの代わりに列からロードする方法はありますか?

ありがとうございます。以下のように

答えて

0

使用: - よりXMLpath関連機能については

select *,xpath_string(z,'//AChildElement1'),xpath_string(z,'//AChildElement2') from table; 

https://cwiki.apache.org/confluence/display/Hive/LanguageManual+XPathUDF

か、またXMLserdeのアプローチを使用することができます。

+0

ありがとうございます、これは完全に機能しました。 – Nagos1

+0

素晴らしい:)他の人の参考に答えを受け入れてください。ありがとう –

関連する問題