2017-02-13 11 views
0

У меня есть данные в улей таблицы, выглядит следующим образом:Pig Explode XML из колонки в HCat

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

Я хочу взять вторую колонку и взорвать его на элементы, как так:

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

И запишите его в файл CSV.

Я могу использовать загрузчик Hive/Hcat, чтобы вытащить данные и отфильтровать их до этих двух столбцов, но я смущен тем, как использовать XPath или XMLoader для загрузки столбца из уже отфильтрованного набора результатов. Есть ли способ использовать XPath или XMLoader для загрузки только из столбца вместо файла?

Заранее спасибо.

ответ

0

Использование ниже: -

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

Для более функций, связанных с XMLpath: https://cwiki.apache.org/confluence/display/Hive/LanguageManual+XPathUDF

или вы можете также использовать XMLserde подход.

+0

Спасибо, это сработало отлично. – Nagos1

+0

Отлично :) Примите ответ на другой вопрос. благодаря –