2014-09-02 93 views
1

我在使用通配符輸入路徑時遇到問題。從通配符輸入路徑存儲

如果我運行下面的命令:

A = load ‘/something/*.csv’ using PigStorage(‘,’) 
dump A; 

我看到所有CSV文件輸出在運行作業後打印到我的控制檯的東西文件夾。

但是,如果我跑一家商店,而不是:

A = load ‘/something/*.csv’ using PigStorage(‘,’) 
store A into ‘somedestination’; 

作業失敗,出現以下錯誤信息:

Input(s): 
Failed to read data from 「/something/*.csv」 

它看起來像商店試圖從字面路徑加載而不是使用通配符進行匹配,但如果是這種情況,那麼爲什麼它在轉儲過程中起作用?有沒有另外一種方法來完成這個?

+0

如果在存儲的情況下無法讀取數據,您是否可以粘貼整個輸出?我的猜測是它與STORE或globbing無關,但是腳本可能會導致其他問題失敗,但您仍然看到「無法從/something/*.csv讀取數據」 – 2014-09-03 05:15:16

回答

1

您可能沒有寫入該文件夾的權限。 轉儲基本上寫入到tmp文件夾(如果配置不同,則會寫入其他文件夾),然後將其打印到屏幕上。

做一個轉儲。看看日誌。它應該是這樣的:

Input(s): 
Successfully read 0 records from: "‘/something/*.csv’" 

Output(s): 
Successfully stored 0 records in: "file:/tmp/temp1865628879/tmp-1573237939" 

然後下次嘗試並存儲到您在執行轉儲時看到的文件夾。如果這工作正常,那麼你有權限問題。