我是Pig的新手,我想使用Pig从路径加载数据。该路径是动态的,并存储在txt文件中。假设我们有一个名为pigInputPath.txt
的txt文件
我计划在Pig脚本中执行以下操作:
首先使用以下方法加载路径:
InputPath = Load 'pigInputPath.txt' USING PigStorage();
使用以下方法从路径中第二次加载数据:
Data = Load 'someprefix' + InputPath + 'somepostfix' USING PigStorage();
但这是行不通的。我也尝试过CONCAT,但它也给我一个错误。有人可以帮我弄这个吗。非常感谢!
答案 0 :(得分:1)
首先,找到一种将输入路径作为参数传递的方法。 (参考:Hadoop Pig: Passing Command Line Arguments,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();