目前無法在純豬身上做到這一點。你可以在純豬身上做的最好的事情就是使用它們的內置氣球,你可以找到關於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
是的,我誤解了早期版本。我認爲上面的一個看起來不錯。不知道它是否解決了問題。 –