您可以使用SUM()Pig Latin 的函数,用于获取 single-column 包中某列的数值总和。在计算总数时,SUM()函数忽略 NULL 值。
注意-
要获得全局总和值,我们需要执行一个Group All操作,并使用 SUM() 函数计算和值。
要获得一个组的总和值,我们需要使用Group By运算符并继续执行 sum 函数。
用法
下面给出的是SUM()函数。
grunt> SUM(expression)
示例
假设我们有一个名为employee.txt在 HDFS 目录中/pig_data/如下所示。
employee.txt
1,John,2007-01-24,250 2,Ram,2007-05-27,220 3,Jack,2007-05-06,170 3,Jack,2007-04-06,100 4,Jill,2007-04-06,220 5,Zara,2007-06-06,300 5,Zara,2007-02-06,350
我们已经将此文件加载到 Pig 中,并使用关系名称employee_data如下所示。
grunt> employee_data = LOAD 'hdfs://localhost:9000/pig_data/ employee.txt' USING PigStorage(',')
as (id:int, name:chararray, workdate:chararray, daily_typing_pages:int);
计算所有 GPA 的总和
为了证明SUM()函数,让我们尝试计算所有员工每天输入的总页数。我们可以使用 Apache Pig 的 内置 函数SUM()(区分大小写)来计算数值的总和。让我们使用以下方法对关系 employee_data 进行分组Group All运算符,并将结果存储在名为 employee_group 的关系中,如下所示。
grunt> employee_group = Group employee_data all;
它将产生如下所示的关系。
grunt> Dump employee_group; (all,{(5,Zara,2007-02-06,350), (5,Zara,2007-06-06,300), (4,Jill,2007-0406,220), (3,Jack,2007-04-06,100), (3,Jack,2007-05-06,170), (2,Ram,2007-0527,220), (1,John,2007-01-24,250)})
现在让我们计算每天输入的页面的总和。
grunt> student_workpages_sum = foreach employee_group Generate
(employee_data.name,employee_data.daily_typing_pages),SUM(employee_data.daily_typing_pages);
确认
验证关系student_workpages_sum使用DUMP操作符如下图。
grunt> Dump student_workpages_sum;
输出
它将产生以下输出,显示关系的内容student_workpages_sum如下。
(({ (Zara), (Zara), (Jill) ,(Jack) , (Jack) , (Ram) , (John) }, { (350) , (300) , (220) ,(100) , (170) , (220) , (250) }),1610)
相关用法
- Apache Pig SUBSTRING()用法及代码示例
- Apache Pig SUBTRACT()用法及代码示例
- Apache Pig SQRT()用法及代码示例
- Apache Pig SecondsBetween()用法及代码示例
- Apache Pig SINH()用法及代码示例
- Apache Pig SubtractDuration()用法及代码示例
- Apache Pig SIN()用法及代码示例
- Apache Pig STARTSWITH()用法及代码示例
- Apache Pig STRSPLIT()用法及代码示例
- Apache Pig SIZE()用法及代码示例
- Apache Pig STRSPLITTOBAG()用法及代码示例
- Apache Pig HoursBetween()用法及代码示例
- Apache Pig TOKENIZE()用法及代码示例
- Apache Pig TAN()用法及代码示例
- Apache Pig TOMAP()用法及代码示例
- Apache Pig TOTUPLE()用法及代码示例
- Apache Pig EqualsIgnoreCase()用法及代码示例
- Apache Pig GetHour()用法及代码示例
- Apache Pig EXP()用法及代码示例
- Apache Pig CurrentTime()用法及代码示例
注:本文由纯净天空筛选整理自 Apache Pig - SUM()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。