У меня есть XML-файлHadoop - петля PIG на узлах XML с помощью XPath
<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 используя цикл? Мне кажется трудным ....
Любые указатели ????
Спасибо.
Любое предложение по HTTP : //stackoverflow.com/questions/32921201/hadoop-load-hive-tables-using-pig – Ajay