2013-09-23 30 views
1

我有一個存儲在filenames.txt中的文件名列表。是否可以使用單個LOAD命令將它們全部加載到一起?apache pig如何在filenames.txt中加載文件

它們不在同一個目錄中,也沒有類似的格式,所以它不像20130801.gz到20130831.gz那樣使用/ 201308加載。

再加上有太多的文件列表,阻止我做喜歡this

殼:豬-f script.pig -param輸入= /用戶/培訓/測試/ {20100810 .. 20100812}

pig:temp = LOAD'$ input'使用SomeLoader()AS(...);

在此先感謝您的見解!

+0

filenames.txt中有多少個文件? –

回答

2

如果文件的數量是相當小的(例如:在命令行中,你融入ARG_MAX),你可以嘗試將文件中的行Concat的到一個字符串:

pig -param input=`cat filenames.txt | tr "\n" ","` -f script.pig 

script.pig: 
A = LOAD '$input' .... 

也許會更好列出目錄而不是單個文件,如果它是你的選擇。

+1

對$ input參數的值的長度是否存在系統或PIG限制? – alexeipab

+0

它的工作原理。我提交了一個包含184個文件名的txt,總大小爲13KB,並通過了。 –

+0

@alexeipab您可能有linux命令行參數的內存限制。 (getconf ARG_MAX) –

相關問題