使用 Piggybank 使用 Pig 进行 XML 解析

Posted

技术标签:

【中文标题】使用 Piggybank 使用 Pig 进行 XML 解析【英文标题】:XML Parsing with Pig using Piggybank 【发布时间】:2014-02-28 06:53:38 【问题描述】:

我即将加载一个 XML 以在 Pig 中进行处理,并在一定程度上成功了。现在使用如下单行 XML 标记进行处理,提供的正则表达式不起作用。

这是我的输入数据

这是我的 PigScript

你能告诉我正则表达式有什么问题吗?

谢谢, 卡莱

【问题讨论】:

不要使用正则表达式解析 XML。 Pig 0.3.0 has an XPath class,在PIG-3619 中讨论。 @Tomalak 谢谢。我正在使用 pig v0.12.0 并在 svn.apache.org/repos/asf/pig/trunk/contrib/piggybank 使用 piggybank,但是在使用 XPath 时我遇到以下错误“错误 org.apache.pig.tools.grunt.Grunt - 错误 1070:无法使用导入解析 XPath: [, java.lang., org.apache.pig.builtin., org.apache.pig.impl.builtin.]”。你能帮我解决这个问题吗? 我不能,抱歉。这有帮助吗? ***.com/questions/13789121/… 【参考方案1】:

下面的正则表达式对我有用。

b= foreach a 生成 REGEX_EXTRACT(x,'Id="(?[^"]+)"',1),REGEX_EXTRACT(x,'UserId="(?[^"]+)"',1 ),REGEX_EXTRACT(x,'Name="(?[^"]+)"',1),REGEX_EXTRACT(x,'Date="(?[^"]+)"',1);

转储 b;

这是输出。

(1815,829,学生,2014-01-18T16:02:02.837)

(1816,401,评论员,2014-01-18T17:07:19.713)

谢谢,

卡莱

【讨论】:

以上是关于使用 Piggybank 使用 Pig 进行 XML 解析的主要内容,如果未能解决你的问题,请参考以下文章

由于 piggybank.jar 的问题,AWS 自己的提交 Pig 作业的示例不起作用

使用 piggybank 和 AvroStorage 解决 EMR 问题

pig 未知方法getNewApplication错误

无法在猪中处理 Xml

无法构建 piggybank -> /home/build/ivy/lib 不存在

使用 Pig 解析 XML 文件