【问题标题】: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;
  • 使用代码更新/编辑您的问题,不要只是将其放入评论中

标签: apache-pig


【解决方案1】:

SUM 适用于列数据。使用“+”添加这些列。请注意,如果您已将 Marks1 到 Marks4 加载到 int 字段中,这将起作用。

Student_New = FOREACH Student_File generate Student_Name, ($1+$2+$3+$4) as Total_Marks; 
Dump Student_New; 

【讨论】:

    猜你喜欢
    • 2016-01-04
    • 1970-01-01
    • 1970-01-01
    • 2018-06-26
    • 2021-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多