目前无法在纯猪身上做到这一点。你可以在纯猪身上做的最好的事情就是使用它们的内置气球,你可以找到关于here的信息。这是相当灵活的,但听起来不足以达到您的目的。
我能想到的另一个解决方案是,如果您可以在您的本地环境中获取该文件,则使用某种wrapper (I would recommend python)。在该脚本中,您可以读取该文件并生成猪脚本来读取这些行。下面是逻辑将如何工作:
def addLoads(filesToRead, schema, delim='\\t'):
newLines = []
with open(filesToRead, 'r') as infile:
for n, f in enumerate(infile):
newLines.append("input{} = LOAD '{}' USING PigStorage('{}') AS {};".format(n, f, delim, schema))
to_union = [ 'input{}'.format(i) for i in range(1, len(newLines)+1) ]
newLines.append('loaded_lines = UNION {} ;'.format(', '.join(to_union)))
return '\n'.join(newLines)
追加这个给你从磁盘加载脚本猪的开始,并确保脚本的其余部分使用loaded_lines
作为开始。
我没有得到它。看来你已经知道文件的格式了。但我想要的是读取文件名在另一个文件列表中的文件。我应该怎么做? – user2970089
是的,我误解了早期版本。我认为上面的一个看起来不错。不知道它是否解决了问题。 –