在 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解决方案中打开别名的迭代器