Hadoop猪拉丁语无法通过python脚本流

时间:2011-04-13 13:53:27

标签: python hadoop apache-pig

我有一个简单的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;

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

  

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

[日志文件]

  

引起:java.io.FileNotFoundException:文件moo.py不存在。

任何想法?

2 个答案:

答案 0 :(得分:5)

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

尝试:

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

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

答案 1 :(得分:0)

问题在于我使用了ship()函数而不是cache()ship()工作文件 - 将本地文件从主服务器传递给从服务器 从属使用cache()从可访问的位置获取文件 例如亚马逊上的s3

希望能帮助任何人:]