1

我无法让 LinkedIn DataFu 的 TransposeTupletoBag 的示例代码(位于http://linkedin.github.io/datafu/docs/current/datafu/pig/util/TransposeTupleToBag.html)工作。

register datafu-1.1.0.jar
define Transpose datafu.pig.util.Transpose();

x = LOAD 'input.txt' AS (id:int,val1:int,val2:int,val3:int);
dump x
(1,10,11,12)

y = FOREACH x GENERATE id, Transpose(val1 .. val3);
2013-11-08 [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1070: 
Could not resolve datafu.pig.util.Transpose using imports: [, java.lang.,
org.apache.pig.builtin., org.apache.pig.impl.builtin.]
Details at logfile: pig_1383941559971.log

由于某种原因,Pig 找不到 Transpose()。我可以使用其他 DataFu 函数,所以 JAR 路径没有问题。我在本地模式下使用 Pig 0.11.1。

4

1 回答 1

1

事实证明这是一个简单的解决方法。DataFu 的文档输入错误或 API 已更新;Transpose() 应该是 TransposeTupleToBag() (无论如何,这更有意义)。只需更换

define Transpose datafu.pig.util.Transpose();

define Transpose datafu.pig.util.TransposeTupleToBag();

你可以走了。

于 2013-11-10T22:36:25.093 回答