猪 - datafu的TransposeTupletoBag的麻烦

时间:2013-11-08 21:09:04

标签: apache-pig

我无法获取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。

1 个答案:

答案 0 :(得分:1)

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

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

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

你很高兴。