gpt4 book ai didi

xml - Hadoop - 使用 XPath 在 XML 节点上进行 PIG 循环

转载 作者:可可西里 更新时间:2023-11-01 16:51:21 25 4
gpt4 key购买 nike

我有一个 XML 文件

<Superfoo>
<foo>
<Number>1</Number>
<childfoo>20</childfoo>
</foo>
<foo>
<Number>2</Number>
<childfoo>10</childfoo>
</foo>
<foo>
<Number>3</Number>
<childfoo>29</childfoo>
</foo>
</Superfoo>

我的要求是在节点上循环。我不想对它们进行硬编码,因为它可以从一个 XML 到另一个 XML。我们有什么方法可以使用 PIG XPath 实现它。

A =  LOAD 'foo.xml' using org.apache.pig.piggybank.storage.XMLLoader('Superfoo') as (x:chararray);

B = FOREACH A GENERATE XPath(x, 'Superfoo/foo/Number'), XPath(x, 'Superfoo/foo/childfoo');
dump B;

我尝试使用上面的代码但它只返回 1 行但是对于 Foreach 它应该返回节点的所有行。

我们是否可以使用循环通过 Hive 完成它?对我来说似乎很难....

任何指示????

谢谢。

最佳答案

修改您的代码如下。

A =  LOAD 'foo.xml' using org.apache.pig.piggybank.storage.XMLLoader('foo') as (x:chararray);

B = FOREACH A GENERATE XPath(x, 'foo/Number'), XPath(x, 'foo/childfoo');

dump B;

Dump B 将产生如下输出:

(1,20)

(2,10)

(3,29)

关于xml - Hadoop - 使用 XPath 在 XML 节点上进行 PIG 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32913329/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com