使用 LinkedIn 的 datafu 包时出错
Posted
技术标签:
【中文标题】使用 LinkedIn 的 datafu 包时出错【英文标题】:Error when using LinkedIn's datafu package 【发布时间】:2013-09-19 22:49:13 【问题描述】:我正在开发一个使用 LinkedIn 的 datafu UDF 编译的 TransposeTupleToBag UDF 的项目。在这里找到:https://github.com/linkedin/datafu/tree/master/src/java/datafu/pig/util。我在 grunt shell 中执行以下命令:
REGISTER jar-file;
DEFINE Transpose datafu.pig.util.TransposeTupleToBag();
a = load data 'file' using PigStorage(',') as (schema);
b = foreach a generate select_columns_from_schema;
c = foreach b generate col1, col2, datafu.pig.util.Transpose(col3, col4...coln);
当我执行最后一行时,我得到这个错误:
[main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1200: Instance name is null.
This should not happen unless UDFContextSignature was not set.
我做错了什么?如何避免?我也没有更改他们的任何代码。而且我只使用 TransposeTupleToBag、FieldNotFound 和 AliasableEvalFunc,因为它们是成功运行 Transpose 所需的类。我什至对所有加载的类都进行了同样的尝试,但它仍然给了我同样的错误。这是怎么回事?请帮忙。谢谢!
【问题讨论】:
【参考方案1】:TransposeTupleToBag 需要 Pig 0.11 中调用 setUDFContextSignature 的功能。这用于区分 UDF 的每次调用。 Pig 0.10 中不存在此方法。
【讨论】:
虽然我意识到了同样的事情,但就解决具体问题而言,您的回答比我的要清楚得多。谢谢!【参考方案2】:事实证明,LinkedIn 的 datafu 在 pig 0.11.1 上进行了测试,仅此而已。我正在运行 pig 0.10,所以它不起作用,因为可能没有在 pig 0.10 中设置某些属性,但可能在 pig 0.11.1 中已修复。
【讨论】:
以上是关于使用 LinkedIn 的 datafu 包时出错的主要内容,如果未能解决你的问题,请参考以下文章
LinkedIn PBI 自定义数据连接器 - 计划报告刷新时出错
尝试将 Linkedin SDK 集成到我的 Swift 项目中时出错