×

Apache Pig 介绍

Apache Pig 概述Apache Pig 架构

Apache Pig 环境

Apache Pig 安装Apache Pig 执行Apache Pig Grunt Shell

Pig Latin 介绍

Pig Latin 基础

Apache Pig 加载和存储

Apache Pig 加载数据Apache Pig 存储数据

Apache Pig 诊断运算符

Apache Pig Diagnostic运算符Apache Pig Describe运算符Apache Pig Explain运算符Apache Pig illustrate运算符

Apache Pig 分组和连接

Apache Pig Group运算符Apache Pig Cogroup运算符Apache Pig Join运算符Apache Pig Cross运算符

Apache Pig 合并和拆分

Apache Pig Union运算符Apache Pig Split运算符

Apache Pig 过滤

Apache Pig Filter运算符Apache Pig Distinct运算符Apache Pig Foreach运算符

Apache Pig 排序

Apache Pig Order By运算符Apache Pig Limit运算符

Pig Latin 内置函数

Apache Pig Eval函数Apache Pig 加载和存储函数Apache Pig 包和元组函数Apache Pig 字符串函数Apache Pig 日期时间函数Apache Pig 数学函数

Apache Pig 其他执行模式

Apache Pig 用户定义函数Apache Pig 运行脚本

Apache Pig 有用的资源

Apache Pig 有用资源Apache Pig 讨论

Apache Pig COUNT_STAR()函数


Apache Pig Eval函数Apache Pig Eval函数


Pig Latin的 COUNT_STAR() 函数与 COUNT() 函数类似。它用于获取包中的元素数量。在计数元素时, COUNT_STAR() 函数包含NULL值。

注意

  • 要获取全局计数值(包中的元组总数),我们需要执行Group All操作,并使用COUNT_STAR()函数计算count_star值。

  • 要获取组的计数值(组中的元组数),我们需要使用 Group By 运算符对其进行分组,然后继续使用count_star函数。

语法

下面给出了 COUNT_STAR() 函数的语法。

grunt> COUNT_STAR(expression)

假设在HDFS目录 /pig_data/ 中有一个名为 student_details.txt 的文件,如下所示,此文件包含空记录。

student_details.txt

, , , , , , , 
001,Rajiv,Reddy,21,9848022337,Hyderabad,89 
002,siddarth,Battacharya,22,9848022338,Kolkata,78 
003,Rajesh,Khanna,22,9848022339,Delhi,90 
004,Preethi,Agarwal,21,9848022330,Pune,93 
005,Trupthi,Mohanthy,23,9848022336,Bhuwaneshwar,75 
006,Archana,Mishra,23,9848022335,Chennai,87 
007,Komal,Nayak,24,9848022334,trivendram,83 
008,Bharathi,Nambiayar,24,9848022333,Chennai,72

通过关系 student_details 将此文件加载到的Pig中,如下所示。

grunt> student_details = LOAD 'hdfs://localhost:9000/pig_data/student_details.txt' USING PigStorage(',')
   as (id:int, firstname:chararray, lastname:chararray, age:int, phone:chararray, city:chararray, gpa:int);

计算元组数

我们可以使用内置函数 COUNT_STAR() 来计算关系中的元组数。让我们使用Group All运算符将关系 student_details 分组,并将结果存储在名为 student_group_all 的关系中,如下所示。

grunt> student_group_all = Group student_details All;

它将产生如下所示的关系。

grunt> Dump student_group_all;  

(all,{(8,Bharathi,Nambiayar,24,9848022333,Chennai,72),
(7,Komal,Nayak,24,9848022 334,trivendram,83),
(6,Archana,Mishra,23,9848022335,Chennai,87),
(5,Trupthi,Mohan thy,23,9848022336,Bhuwaneshwar,75),
(4,Preethi,Agarwal,21,9848022330,Pune,93),
(3 ,Rajesh,Khanna,22,9848022339,Delhi,90),
(2,siddarth,Battacharya,22,9848022338,Ko lkata,78),
(1,Rajiv,Reddy,21,9848022337,Hyderabad,89),
( , , , , , , )}) 

现在让我们计算关系中的元组/记录的数量。

grunt> student_count = foreach student_group_all  Generate COUNT_STAR(student_details.gpa);

验证

使用 DUMP 运算符验证关系 student_count ,如下所示。

grunt> Dump student_count;

输出

它将产生以下输出,显示关系 student_count 的内容。

9

因为我们使用了函数 COUNT_STAR() ,它包含了null元组并返回9。


Apache Pig Eval函数Apache Pig Eval函数


分类导航

关注微信下载离线手册

bootwiki移动版 bootwiki
(群号:472910771)