从通配符输入路径存储

时间:2014-09-02 14:36:53

标签: apache-pig

我在Pig中使用通配符输入路径时遇到问题。

如果我运行以下命令:

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

我看到作业运行后打印到控制台的some文件夹中所有csv文件的输出。

但是,如果我经营商店:

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

作业失败,并显示以下错误消息:

Input(s):
Failed to read data from “/something/*.csv”

看起来商店正在尝试从文字路径加载而不是使用通配符进行通配,但如果是这种情况,那么为什么它在转储期间有效呢?还有另一种方法可以实现这个目标吗?

1 个答案:

答案 0 :(得分:1)

您可能没有权限写入该文件夹。 转储基本上写入tmp文件夹(如果配置不同,则写入另一个文件夹),然后将其打印到屏幕上。

进行转储。看看日志。它应该说:

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

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

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