apache pig:如何在load函数中连接字符串?

pes8fvy9  于 2021-06-24  发布在  Pig
关注(0)|答案(1)|浏览(366)

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

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

第二次从路径加载数据时使用:

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

但这行不通。我也试过concat,但它也给了我一个错误。有人能帮我吗。谢谢!

7ajki6be

7ajki6be1#

首先,找到一种将输入路径作为参数传递的方法(引用:hadoop pig:传递命令行参数,https://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();

相关问题