登录 Pig UDF

Posted

技术标签:

【中文标题】登录 Pig UDF【英文标题】:Logging in Pig UDF 【发布时间】:2013-01-21 11:06:51 【问题描述】:

我正在从 Pig 脚本调用用 Java 编写的 UDF。

在 UDF 中,如果由于某种原因输入不正确,我会返回 null 并跳过特定的行/行。

现在有很多原因我可以跳过当前行/行。我目前在我的 UDF 中使用以下日志语句

warn("XML is null, so skipping it", PigWarning.UDF_WARNING_1);
....
warn("Entity is null, so skipping it", PigWarning.UDF_WARNING_5);
.... and so on

猪脚本完成后,这会给我一个整合信息,如下所示

2013-01-21 07:03:42,163 [main] WARN  org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceLauncher - Encountered Warning UDF_WARNING_5 5473 time(s).
2013-01-21 07:03:42,163 [main] WARN  org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceLauncher - Encountered Warning UDF_WARNING_1 1466 time(s).

但现在我想知道每条线路失败的原因,而不仅仅是数字。有没有办法在 Pig 中做到这一点?

【问题讨论】:

【参考方案1】:

我发现了一个名为 penny 的库,它允许我在 Pig 中进行日志记录和过滤。

【讨论】:

0.11有解决方案吗?我有同样的问题,但 Penny 不包含在更高版本中

以上是关于登录 Pig UDF的主要内容,如果未能解决你的问题,请参考以下文章

Pig 脚本无法注册 UDF

Pig 的 UDF 中存在“in”会导致问题

PIG- udf 内的超时

Pig如何实例化UDF对象

在 PIG UDF 中调试

Pig 中的 SimpleTextLoader UDF