pig错误消息:投影字段不存在

5ssjco0h  于 2021-06-21  发布在  Pig
关注(0)|答案(1)|浏览(282)

我在上一门在线课程。我当前的作业要求我计算其中一个字段的平均值。我在使用单个关系时实现了这一点,但当前的任务涉及从连接其他两个关系所创建的关系中计算值。当我尝试一个基于以前成功的方法的函数时,我得到了这个错误消息,这让我感到困惑。
字段投影无效。架构中不存在投影字段[join2::y\u rate2::wtd\u stars]:
我在清管器外壳中输入的代码是:

avg = FOREACH groupedJoin2 GENERATE AVG(join2::Y_rate2::wtd_stars);

我进去的时候

grunt> describe groupedJoin2

这是我的输出:
groupedjoin2:{group:chararray,join2:{(y\u rate2::business\u id:chararray,y\u rate2::stars:int,y\u rate2::usive\u clipped:int,y\u rate2::wtd\u stars:double,y\u m2::business\u idgroup:chararray,y\u m2::num\u ratings:long,y\u m2::avg\u stars:double,y\u m2::avg\u usive:double,y\u m2::avg\u wtdstars:double)}}
我相信我的问题是我不知道如何引用我想要计算平均值的字段,但是数天的搜索并没有启发我。
如果这是我的问题,谁能指出如何引用该字段?如果那不是我的问题,我会很感激你给我指明了正确的方向。

r8uurelv

r8uurelv1#

我想你应该说: AVG(join2.Y_rate2::wtd_stars) dot用于取消对包或元组(在本例中是join2包)的引用。冒号用于在联接或组之后消除字段名的歧义。
可以按名称(bag.field\u name)或位置(bag.$0)取消对行李的引用。如果取消引用一组字段(bag.(name1,name2)或bag.($0,$1)),则表达式表示由指定字段组成的包。http://pig.apache.org/docs/r0.15.0/basic.html#deref

相关问题