如何在猪脚本中对单行中的字段进行总计?
Posted
技术标签:
【中文标题】如何在猪脚本中对单行中的字段进行总计?【英文标题】:how to total fields in single row in pig script? 【发布时间】:2017-08-10 12:01:32 【问题描述】:我有一个包含学生姓名和逗号分隔的各种科目分数的数据集,我如何总结每个学生的分数 示例数据集记录
Student1 Marks1 Marks2 Marks3 Marks4
(Steve, 78, 23, 45, 34)
(Jobs, 23, 45, 12, 67)
脚本
Student_New = FOREACH Student_File generate Student_Name, (int)TotalMarks:SUM($1,$2,$3,$4,$5);
Dump Student_New;
我想将输出显示为(总结所有主题分数)
(Steve, 180)
(Jobs, 147)
【问题讨论】:
显示您尝试过的代码。 Student_New = FOREACH Student_File 生成 Student_Name, (int)TotalMarks:SUM($1,$2,$3,$4,$5);转储 Student_New; 使用代码更新/编辑您的问题,不要只是将其放入评论中 【参考方案1】:SUM 适用于列数据。使用“+”添加这些列。请注意,如果您已将 Marks1 到 Marks4 加载到 int 字段中,这将起作用。
Student_New = FOREACH Student_File generate Student_Name, ($1+$2+$3+$4) as Total_Marks;
Dump Student_New;
【讨论】:
以上是关于如何在猪脚本中对单行中的字段进行总计?的主要内容,如果未能解决你的问题,请参考以下文章