2014-09-02 92 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" 

然后下次尝试并存储到您在执行转储时看到的文件夹。如果这工作正常,那么你有权限问题。