使用 Pig 解析 XML 文件
Posted
技术标签:
【中文标题】使用 Pig 解析 XML 文件【英文标题】:Parsing XML file using Pig 【发布时间】:2014-05-27 06:47:20 【问题描述】:我正在尝试通过使用以下 pig 脚本来使用 pig 读取多级 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 类型的标签值
【问题讨论】:
【参考方案1】:尝试使用 Streaming XML Loader ..这将使您免于编写 UDF.link http://blog.mortardata.com/post/61678005593/xml-pig-loader
【讨论】:
以上是关于使用 Pig 解析 XML 文件的主要内容,如果未能解决你的问题,请参考以下文章