我想用Pig Latin从xml中提取属性。如何在Pig中使用Xpath提取xml属性?
这是xml文件
<CATALOG>
<BOOK>
<TITLE test="test1">Hadoop Defnitive Guide</TITLE>
<AUTHOR>Tom White</AUTHOR>
<COUNTRY>US</COUNTRY>
<COMPANY>CLOUDERA</COMPANY>
<PRICE>24.90</PRICE>
<YEAR>2012</YEAR>
</BOOK>
</CATALOG>
我用这个脚本,但它没有工作的一个样本:
REGISTER ./piggybank.jar
DEFINE XPath org.apache.pig.piggybank.evaluation.xml.XPath();
A = LOAD './books.xml' using org.apache.pig.piggybank.storage.XMLLoader('BOOK') as (x:chararray);
B = FOREACH A GENERATE XPath(x, 'BOOK/TITLE/@test'), XPath(x, 'BOOK/PRICE');
dump B;
产量为:
(,24.90)
希望有人可以帮助我。 谢谢。
也许你的意思' 'BOOK/TITLE/@ test'',而不是'' 书籍/作者/ @测试” '? 'AUTHOR'元素没有'test'属性。 – LarsH
哦,是的,在我使用Title的实际代码中。对于那个很抱歉。 – AL7
如果'BOOK/PRICE'与给定焦点一起工作,那么'BOOK/TITLE/@ test'也应该起作用,除非piggybank不支持属性。我假设'BOOK/TITLE'也适用?你可以试试'BOOK // @ *',它应该为你提供BOOK下的所有属性。 – Abel