gpt4 book ai didi

hadoop - pig - 计算整个组的成员

转载 作者:可可西里 更新时间:2023-11-01 16:59:47 25 4
gpt4 key购买 nike

假设我有一个关系 Students,具有字段 gradeteacher。我想按年级和老师分组,但保留每个组中每个年级的所有学生的数量。像这样的东西:

classes = GROUP Students BY (grade,teacher);
classes = FOREACH classes {
GENERATE
(### COUNT OF ALL STUDENTS IN GRADE ###) as grade_size,
Students as students,
teacher as teacher;
}

但我不知道如何从组语句内部进行过滤。某种过滤器,但我不知道如何确定组外学生和组内学生的成绩。

最佳答案

有两种方法:

1) 使用 Group By grade 和 teacher,而不是计数,而不是 Flatten 和 Group By grade。

classes = GROUP Students BY (grade,teacher);
teachers = FOREACH classes GENEARATE FLATTEN(group) as (grade,teacher), COUNT(Students) as perTeacehr;
grade = GROUP teachers BY grade;
result = FOREACH grade GENERATE FLATTEN(teachers), SUM(teachers.perTeacher) as perGrade;
describe result;
dump result;

2) 按年级分组,然后使用 BagGroup 中的 UDF从 DataFu 库在内存中进行分组,但这容易受到可能的堆内存异常的影响,但速度更快。

关于hadoop - pig - 计算整个组的成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25701716/

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