猪从 HCat 中的列爆炸 XML
Pig Explode XML from Column in HCat
我在配置单元 table 中有如下所示的数据:
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 仅从列而不是文件加载?
提前致谢。
使用如下:-
select *,xpath_string(z,'//AChildElement1'),xpath_string(z,'//AChildElement2') from table;
更多 XMLpath 相关函数:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+XPathUDF
或者您也可以使用 XMLserde 方法。
我在配置单元 table 中有如下所示的数据:
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 仅从列而不是文件加载?
提前致谢。
使用如下:-
select *,xpath_string(z,'//AChildElement1'),xpath_string(z,'//AChildElement2') from table;
更多 XMLpath 相关函数:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+XPathUDF
或者您也可以使用 XMLserde 方法。