在 Pig 中出现错误为“错误编译运算符 POLocalRearrange”

Posted

技术标签:

【中文标题】在 Pig 中出现错误为“错误编译运算符 POLocalRearrange”【英文标题】:In Pig getting error as 'Error compiling operator POLocalRearrange' 【发布时间】:2017-08-21 12:34:50 【问题描述】:

我正在练习 cloudera yarn VMware Player(非商业用途)。 我在 pig 中的脚本是,

a1 = load '/user/training/my_hdfs/id' using PigStorage('\t') as(id:int,name:chararray,desig:chararray); a2 = load '/user/training/my_hdfs/trips' using PigStorage('\t') as(id:int,place:chararray,no_trips:int); a3 = join a1 by id,a2 by id; a4 = group a3 by a1::id; illustrate a4;

说明后显示消息为,

2017-08-21 07:52:11,926 [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 2997: Encountered IOException. Exception : Error compiling operator POLocalRearrange

数据集是,

Table id 101 aaa executive 102 bbb manager 104 hhh manager 106 ccc trainee 109 hhh trainee

Table trips 101 pune 1 101 hyd 2 102 pune 2 102 hyd 3 102 bang 4

【问题讨论】:

【参考方案1】:

当我尝试使用提供的数据运行您的程序时,由于文件中的分隔符不一致,我也遇到了一些错误。有些是它的空间,有些是它的标签(可能是因为复制粘贴)。我使分隔符通用(使用制表符),一切正常。

尝试使用 dump a1 或 dump a2 并查看是否可以在正确的列中看到数据。 对我来说,在使定界符通用并说明 a4 给出以下输出后,它工作得很好:

------------------------------------------------------------------
| a1     | id:int     | name:chararray     | desig:chararray     |
------------------------------------------------------------------
|        | 101        | aaa                | executive           |
|        | 101        | aaa                | executive           |
------------------------------------------------------------------
----------------------------------------------------------------
| a2     | id:int     | place:chararray     | no_trips:int     |
----------------------------------------------------------------
|        | 101        | pune                | 1                |
|        | 101        | hyd                 | 2                |
----------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------
| a3     | a1::id:int     | a1::name:chararray     | a1::desig:chararray     | a2::id:int     | a2::place:chararray     | a2::no_trips:int     |
------------------------------------------------------------------------------------------------------------------------------------------------
|        | 101            | aaa                    | executive               | 101            | pune                    | 1                    |
|        | 101            | aaa                    | executive               | 101            | hyd                     | 2                    |
|        | 101            | aaa                    | executive               | 101            | pune                    | 1                    |
|        | 101            | aaa                    | executive               | 101            | hyd                     | 2                    |
------------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| a4     | group:int     | a3:bag:tuple(a1::id:int,a1::name:chararray,a1::desig:chararray,a2::id:int,a2::place:chararray,a2::no_trips:int)                                 |
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|        | 101           | (101, ..., 1), ..., (101, ..., 2)                                                                                                               |
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

【讨论】:

您好 user3359790,非常感谢您的回复,我的电脑上的数据实际上是一致的,在这里复制粘贴变得不一致,我尝试了很多东西,最后我卸载了我的 VM 播放器,yarn 又一次重新安装了所有东西。令我惊讶的是,它工作正常并给出了你所显示的输出。我不明白问题是什么,但卸载并重新安装所有新东西解决了这个问题。再次感谢你所表现出的关注。

以上是关于在 Pig 中出现错误为“错误编译运算符 POLocalRearrange”的主要内容,如果未能解决你的问题,请参考以下文章

错误1066:无法在Pig,Generic解决方案中打开别名的迭代器

用于 PIG 捐赠错误的 Python UDF

Apache Pig:在 Pig 中处理数据类型时面临问题

在 Pig 中过滤

在 Pig Latin 中加载 UDF 时发生 ClassCastException 错误

EMR Hadoop Pig 作业错误“创建作业配置内部错误”