我有一个存储在filenames.txt中的文件名列表。是否可以使用单个LOAD命令将它们全部加载在一起?
它们不在同一目录中,也没有相似的格式,因此它不像使用/ 201308加载20130801.gz到20130831.gz。
另外,列表中的文件太多,阻止我像this那样做:
shell:pig -f script.pig -param input = / user / training / test / {20100810..20100812}
pig:temp = LOAD'$ input'使用SomeLoader()AS(...);
提前感谢您的见解!
答案 0 :(得分:2)
如果文件数量相当小(例如:在命令行中符合ARG_MAX),您可以尝试将文件中的行连接成一个字符串:
pig -param input=`cat filenames.txt | tr "\n" ","` -f script.pig
script.pig:
A = LOAD '$input' ....
如果它是您的选项,可能最好列出目录而不是单个文件。