3

我有一个简单的 python 脚本(moo.py),但我正在尝试流式传输

import sys, os
for line in sys.stdin:
    print 1;

我尝试运行这个猪脚本

DEFINE CMD `python moo.py` ship('moo.py');
data = LOAD 's3://path/to/my/data/*' AS (a:chararray, b:chararray, c:int, d:int);
res = STREAM data through CMD;
dump res;

当我在本地运行这个猪脚本(pig -x local)时一切都很好,但是当我在没有 -x local 的情况下运行它时,它会打印出这个错误

[main] 错误 org.apache.pig.tools.grunt.Grunt - 错误 2017:创建作业配置的内部错误。

[日志文件]

原因:java.io.FileNotFoundException:文件 moo.py 不存在。

任何的想法?

4

2 回答 2

5

这很可能是相对路径的问题。

尝试:

DEFINE CMD `python moo.py` ship('/local/path/to/moo.py');

它也可能是读/写/执行权限的问题。

于 2011-04-13T14:17:14.923 回答
0

问题是我使用ship()函数而不是cache() whileship()工作文件 - 将本地文件从主机传递到从机 cache()被从机用来从可访问的地方获取文件,例如亚马逊上的 s3

希望对任何人都有帮助:]

于 2011-08-29T20:21:16.983 回答