使用以下格式的文件:
<badges>
<row Id="1" UserId="1" Name="Teacher" Date="2009-09-30T15:17:50.66"/>
<row Id="2" UserId="3" Name="Teacher" Date="2009-09-30T15:17:50.69"/>
</badges>
我正在使用pig xmlloader将此xml数据提取到hdfs中。
A = LOAD '/badges' using org.apache.pig.piggybank.storage.XMLLoader('row') as (x:chararray);
B = foreach A generate xpath(x, '/row@Id').
Dump B;
输出我得() - 没有值。
我希望文件输出为文本,即1,1,Teacher,2009-09-30T15:17:50.66。我怎么能这样做?
答案 0 :(得分:0)
我不熟悉pig xmlloader,但/row@Id
有两个问题:
尝试:
B = foreach A generate xpath(x, 'row/@Id').
它使用有效的语法和相对路径。
答案 1 :(得分:0)
使用XPathAll提取属性.XS在属性方面有issue。
REGISTER '/path/piggybank-0.15.0.jar'; -- Use the jar name you downloaded
DEFINE XPathAll org.apache.pig.piggybank.evaluation.xml.XPathAll();
B = foreach A generate XPathAll(x, 'row/@Id', true, false).$0 as (id:chararray);