我想用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