У меня есть XML-файл, такой как следующий. Я загружаю XML, используя XMLLOader
. Он работает нормально. Но, при выборке значения она дает пустые значения:Получение пустых значений при анализе XML с помощью Pig
<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>
Мой Pig сценарий выглядит следующим образом:
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
Для меня это работает отлично. вы можете вставить свалку input_xml? –
вышеупомянутый xml не является полным xml-файлом, он имеет так много других тегов. Когда я копирую это в отдельный xml, тогда я могу получить значения, используя ваше второе решение. Но пока я пытаюсь извлечь из полного xml это не работает. – user2572165