在 Hadoop 上的 Pig 中引用包中的元素
refer elements in bag in Pig on Hadoop
我有一个名为student的别名,数据结构是这样的(命令describe
的结果),
studentIDInt:int,courses:bag{(courseId:int,testID:int,score:int)}
然后我想按分数筛选学生,但是遇到了这样的Pig解析错误,如果有人有什么好主意,那就太好了。谢谢
对错误消息中报告的附加元组感到困惑。
student = filter student by courses.score > 3;
incompatible types in GreaterThan Operator left hand side:bag :tuple(score:int) right hand score:int
此致,
林
你不能直接这样做。可能的解决方案是先展平、过滤然后再分组
flat_student = foreach student generate studentIDInt, flatten(courses);
filtered_student = filter flat_student by score > 3;
final_student = group filtered_student by studentIDInt;
另一种方法是编写自定义 FilterFunc,因此您可以选择什么。
我有一个名为student的别名,数据结构是这样的(命令describe
的结果),
studentIDInt:int,courses:bag{(courseId:int,testID:int,score:int)}
然后我想按分数筛选学生,但是遇到了这样的Pig解析错误,如果有人有什么好主意,那就太好了。谢谢
对错误消息中报告的附加元组感到困惑。
student = filter student by courses.score > 3;
incompatible types in GreaterThan Operator left hand side:bag :tuple(score:int) right hand score:int
此致, 林
你不能直接这样做。可能的解决方案是先展平、过滤然后再分组
flat_student = foreach student generate studentIDInt, flatten(courses);
filtered_student = filter flat_student by score > 3;
final_student = group filtered_student by studentIDInt;
另一种方法是编写自定义 FilterFunc,因此您可以选择什么。