gpt4 book ai didi

hadoop - 如何在 PigLatin 的 SUM 中计算乘法

转载 作者:可可西里 更新时间:2023-11-01 15:41:24 26 4
gpt4 key购买 nike

我有一只像这样的 pig 描述:

DESCRIBE B;
B: {group: chararray, A: {name: chararray,age: int,gpa: float}}

我想计算 ∑B.A.gpa<sup>2</sup>在 pig 身上

但是如果我写:

FOREACH B {
out = SUM(A.gpa * A.gpa);
}

它抛出这样的异常:

[main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1039: <file test.pig, line xx, column xx> (Name: Multiply Type: null Uid: null)incompatible types in Multiply Operator left hand side:bag :tuple(gpa:float)  right hand side:bag :tuple(gap:float)

我已经向 Pig group 寻求解决方案,这是 jira link

有人对我的问题有其他建议吗?

我的临时解决方案是

FOREACH B {
tmp_out = FOREACH A GENERATE gpa*gap;
out = SUM(tmp_out);
}

最佳答案

您的临时解决方案适用于 PIG。请记住,PIG 是一种简单的数据流语言,它可以为您提供开箱即用的 95% 的解决方案,其余 5% 的解决方案可以通过 UDF 完成。要查看有关如何编写 UDF 的好示例,请查看 DataFu by LinkedIn .

关于hadoop - 如何在 PigLatin 的 SUM 中计算乘法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11130991/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com