我试图通过使用以下猪脚本来阅读使用猪的多级xml
REGISTER /opt/cloudera/parcels/CDH-5.0.0-1.cdh5.0.0.p0.47/lib/pig/piggybank.jar;
data = LOAD './a01.xml'
USING org.apache.pig.piggybank.storage.XMLLoader(
'p'
) AS
(s:chararray);
fdata=foreach data GENERATE FLATTEN(REGEX_EXTRACT_ALL(s,'<p>\\n\\<s>\\n\\s* <w>(.*)</w>\\n\\<\s>\\n\\<\p>')) as (w:chararray);
dump fdata;
但我无法使用脚本读取xml文件 这是我输入的xml文件的结构
-<TEI xmlns="http://www.tei-c.org/ns/1.0">
-<text decls="A" xml:id="A01">
-<body>
-<p>
-<s n="1">
<w type="AT">The</w>
<w type="NP" subtype="TL">Fulton</w>
<w type="NN" subtype="TL">County</w>
<w type="JJ" subtype="TL">Grand</w>
<w type="NN" subtype="TL">Jury</w>
<w type="VBD">said</w>
<w type="NR">Friday</w>
<w type="AT">an</w>
<w type="NN">investigation</w>
<w type="IN">of</w>
<w type="NPg">Atlanta's</w>
<w type="JJ">recent</w>
<w type="NN">primary</w>
<w type="NN">election</w>
<w type="VBD">produced</w>
<c type="pct">``</c>
<w type="AT">no</w>
<w type="NN">evidence</w>
<c type="pct">''</c>
</s>
</p>
请让我知道猪表达有什么问题
更新 - 我想只读取带w类型的标签值
答案 0 :(得分:0)
尝试使用Streaming XML Loader ..这将使您免于编写UDFs.link http://blog.mortardata.com/post/61678005593/xml-pig-loader