Apache Pig:如何在加载函数中连接字符串?

时间:2018-08-12 06:59:17

标签: bash apache-pig

我是Pig的新手,我想使用Pig从路径加载数据。该路径是动态的,并存储在txt文件中。假设我们有一个名为pigInputPath.txt的txt文件 我计划在Pig脚本中执行以下操作:

首先使用以下方法加载路径:

InputPath = Load 'pigInputPath.txt' USING PigStorage();

使用以下方法从路径中第二次加载数据:

Data = Load 'someprefix' + InputPath + 'somepostfix' USING PigStorage();

但这是行不通的。我也尝试过CONCAT,但它也给我一个错误。有人可以帮我弄这个吗。非常感谢!

1 个答案:

答案 0 :(得分:1)

首先,找到一种将输入路径作为参数传递的方法。 (参考:Hadoop Pig: Passing Command Line Argumentshttps://wiki.apache.org/pig/ParameterSubstitution

假设您以pig -f script.pig -param inputPath=blah的身份调用脚本

然后您可以从该路径LOAD使用必需的前缀和后缀,如下所示:

Data = LOAD 'someprefix$inputPath/somepostfix' USING PigStorage();

somepostfix字符串的要点是,需要使用/或其他类似的特殊字符将其与参数分开,以告诉Pig字符串不是参数名称的一部分。

避免使用特殊字符的一种方法是执行以下操作:

%default prefix 'someprefix'
%default postfix 'somepostfix'
Data = LOAD '$prefix$inputPath$postfix' USING PigStorage();