【问题标题】:Invalid scalar projection in foreachforeach 中的标量投影无效
【发布时间】:2017-05-30 05:05:14
【问题描述】:

嗨,我有一个像这样的猪脚本。在执行 foreach 语句时,它会引发无效的标量投影错误。这是我的代码。

a = load 'file' using PigStorage(':');
b = group a by ($1, $7, $11);
c = foreach b generate flatten(group), COUNT(a) as (cnt: int);
d = filter c by cnt>1;
e = foreach d generate flatten(a) ;

错误如下图

<line 6, column 31> Invalid scalar projection: a : A column needs to be projected from a relation for it to be used as a scalar

我们将不胜感激。

【问题讨论】:

  • 我昨天发布了这个代码作为答案。如果您在按$1, $7, $11 分组后没有得到任何重复行,则您的关系d 将为空,因此当您尝试实现关系e 时,您将收到此错误。
  • 谢谢 philan...

标签: hadoop apache-pig bigdata


【解决方案1】:

问题是因为“d”关系模式中不存在“a”。

描述'd'模式,你会得到: d: {bytearray,bytearray,bytearray, cnt: int} 其中 'a' 不存在。

在脚本中,通过展平组字段的Projection和a的元素个数,形成C关系,a不包含在关系C中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-15
    • 2015-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-31
    相关资源
    最近更新 更多