我有一個XML文件,如下所示。我使用XMLLOader
加載XML。它工作正常。但是,儘管獲取的值它給空值:獲取空值,同時使用Pig解析XML
<mfh>
<f></f>
<sn>***</sn>
<st>****</st>
<vnr>****</vnr>
<cb>***</cb>
</mfh>
<md>
<nei>
<ne>***</ne>
<k>***</k>
<n>***</n>
</nei>
<mi>
<mts>**</mts>
<g>**</g>
<mv>
<m>***</m>
</mv>
</mi>
.....
.....
</md>
我的豬腳本如下:
REGISTER '/usr/lib/pig/piggybank.jar'
a = load '/user/root/sample.xml' using org.apache.pig.piggybank.storage.XMLLoader('mfh') as (doc:chararray);
dump input_xml;
b = foreach input_xml generate FLATTEN(REGEX_EXTRACT_ALL(doc,'<mfh>\\s*<ffv>(.*)</ffv>\\s*</mfh'));
dump required_tags;
腳本的輸出如下:
它不givning任何錯誤,但輸出是()。我已經更新了XML文件,我想解析所有的值。
第二個工作是打印所有的值,但第一個不工作得到單個值 – user2572165 2014-11-05 15:34:58
對我來說它的工作正常。你能粘貼input_xml的轉儲嗎? – 2014-11-05 16:16:40
上面提到的XML不是完整的XML文件,它有很多其他tags.when我複製上述到單獨的XML,然後我能夠使用您的第二個解決方案獲取值。但是,當我試圖從完整的XML它不工作。 – user2572165 2014-11-06 03:28:43