【问题标题】:Pig Explode XML from Column in HCatPig 从 HCat 中的列中分解 XML
【发布时间】:2017-02-13 18:34:30
【问题描述】:

我的配置单元表中的数据如下所示:

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 仅从列加载而不是从文件加载?

提前致谢。

【问题讨论】:

    标签: xml hadoop hive apache-pig


    【解决方案1】:

    如下使用:-

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

    更多XMLpath相关功能:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+XPathUDF

    或者你也可以使用 XMLserde 方法。

    【讨论】:

    • 太棒了 :) 请接受答案以供其他人参考。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-30
    • 1970-01-01
    • 2014-07-11
    相关资源
    最近更新 更多