Pig 脚本无法使用 Amazon EMR

Posted

技术标签:

【中文标题】Pig 脚本无法使用 Amazon EMR【英文标题】:Pig script not working using Amazon EMR 【发布时间】:2015-03-27 18:29:03 【问题描述】:

我无法让这个脚本工作:

raw = LOAD 's3://xxxxxxxxx/*' AS (name:chararray, year:float, occurrences:float, books:float);
B = GROUP raw BY name;
C = FOREACH B GENERATE B.name, (SUM(B.occurrences) / SUM(B.books)) AS average;
D = ORDER C BY average DESC;
E = LIMIT D 10;
STORE E INTO 's3://xxxxxx';

【问题讨论】:

你遇到了什么问题 【参考方案1】:

C 语句不正确,不能使用Relation B 访问变量name,occurrences and books。这应该只能由relation raw 访问。你能把你的stmt C改成这样吗?

C = FOREACH B GENERATE group, SUM(raw.occurrences)/SUM(raw.books) AS average;

这里group引用变量name

如果您遇到任何其他问题,请粘贴您的错误日志。

【讨论】:

以上是关于Pig 脚本无法使用 Amazon EMR的主要内容,如果未能解决你的问题,请参考以下文章

在 Amazon EMR 上为 Pig UDF 加载外部 python 模块

在 Amazon EMR 中运行的 Pig 作业的引导文件的路径是啥

amazon emr pig:使用参数文件

如何在 Amazon EMR 上的 pig 中使用 Python 流 UDF

在 Amazon EMR-4 上的 Tez 上运行 Pig

从 Pig UDF Java 类、Amazon EMR 中的分布式缓存访问文件