如何读取pig中具有嵌套节点的XML文件

如何读取pig中具有嵌套节点的XML文件,xml,nested,apache-pig,nodes,Xml,Nested,Apache Pig,Nodes,我想在PIG中读取一个XML文件。XML文件如下所示: <pdv id="10000001" latitude="" .... > [....] <prix id="1" maj="2007-01-01 00:00:00" valeur="12"\> <prix id="1" maj="2007-01-01 00:00:01" valeur="15"\> <prix id="1" maj="2007-01-02 00:00:00" valeur="

我想在PIG中读取一个XML文件。XML文件如下所示:

<pdv id="10000001" latitude="" .... >
[....]
 <prix id="1" maj="2007-01-01 00:00:00" valeur="12"\>
 <prix id="1" maj="2007-01-01 00:00:01" valeur="15"\>
 <prix id="1" maj="2007-01-02 00:00:00" valeur="56"\>
</pdv>
10000001,2007-01-01 00:00:00,12
10000001,2007-01-01 00:00:01,15
10000001,2007-01-02 00:00:00,56
我尝试使用以下脚本:

REGISTER piggybank.jar

A =  LOAD 'xmls/stations.xml' using  org.apache.pig.piggybank.storage.XMLLoader('pdv') as (x:chararray);

B = foreach A GENERATE FLATTEN(REGEX_EXTRACT_ALL(x,'<pdv id="[0-9]*" latitude[\\s\\S]*<prix id="1" maj="[^a-z]*" valeur="[0-9]*"/>[\\s\\S]*</pdv>')) AS (id:chararray,prix:float);

dump B;
注册piggybank.jar
A=使用org.apache.pig.piggybank.storage.XMLLoader('pdv')作为(x:chararray)加载'xmls/stations.xml';

B=foreach A GENERATE FLATTEN(REGEX_EXTRACT_ALL,x,您可以尝试使用XPath和@来获取其中的所有属性。下面的代码可能会对您有所帮助

A=使用org.apache.pig.piggybank.storage.XMLLoader('pdv')作为(x:chararray)加载'xmls/stations.xml'

B=每一个A生成一个 XPath(x,'pdv/prix/@id')作为id, XPath(x,'pdv/prox/@maj')作为maj, XPath(x,'pdv/prox/@valeur')作为valeur


dump B;

在这种情况下,我不知道如何开始,但这种问题需要用更小的步骤来解决。