0

我已经尝试了所有我能想到的排列,但我无法让 CONCAT 工作。

当我尝试:

fake = load CONCAT('foo','bar');

我得到以下信息:

2013-01-17 12:41:44,443 [main] 错误 org.apache.pig.tools.grunt.Grunt - 错误 1200:不匹配的输入 'CONCAT' 期望引用字符串

我尝试了双引号,但我不希望它起作用,而且确实没有;我尝试将参数传递给脚本并在它们上使用 CONCAT,但我得到了同样的错误。

为了激发这一点,我试图指定一个基本输出目录,该目录与各种可能的子输出目录连接,具体取决于我想要结果文件的位置。

顺便说一句,我也试过:

假=加载'foo'+'bar';

也就是说,没有使用 CONCAT。

我正在使用 pig-0.10.1.jar - 我认为这是最新版本。

4

1 回答 1

4

您不能CONCAT直接在 中调用LOAD,但实际上不需要。您可以定义在脚本中使用%declare或通过命令行参数/参数文件指定的参数常量。然后您可以使用符号解析参数$x,并且连接是隐式的,就像在 shell 脚本中一样:

%declare FOO 'foo'
%declare BAR 'bar'

fake = load '$FOO$BAR';
于 2013-01-23T03:13:56.920 回答