我一直在尝试使用Amazon EMR上的Pig执行一项非常简单的任务。当我在交互式shell中运行命令时,一切正常。但是当我运行与批处理作业相同的东西时,我得到了
[main] ERROR org.apache.pig.tools.grunt.Grunt - 2017年的错误:内部 创建作业配置时出错。
并且运行脚本失败。 这是我的7行脚本。它只是计算谷歌双字母元组的平均值。 mc是匹配计数,vc是体积计数。
bigrams = LOAD 's3n://<<bucket-name>>/gbbigrams/*' AS (bigram:chararray, year:int, mc:int, vc:int);
grouped_bigrams = group bigrams by bigram;
answer1 = foreach grouped_bigrams generate group, ((DOUBLE) SUM(bigrams.mc))/COUNT(bigrams) AS avg_mc;
sort_answer1 = ORDER answer1 BY avg_mc desc;
answer2 = LIMIT sort_answer1 5;
STORE answer1 INTO 's3n://<bucket-name>/output/bigram/20130409/answer1';
STORE answer2 INTO 's3n://<bucket-name>/output/bigram/20130409/answer2';
我猜这个错误与STORE和s3路径有关。所以我尝试了各种组合,比如使用$ OUTPUT,反斜杠等。但是继续得到同样的错误。 任何帮助都将受到高度赞赏。
答案 0 :(得分:1)
您是否尝试过使用S3 Block File System而不是本机文件系统?
e.g。
s3://<<bucket-name>>/gbbigrams/*
s3://<bucket-name>/output/bigram/20130409/answer1