codecamp

Apache Pig SIZE()函数

Pig Latin的 SIZE() 函数用于基于任何Pig数据类型计算元素的数量。

语法

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

grunt> SIZE(expression)

返回值根据Apache Pig中的数据类型而有所不同。

数据类型
int,long,float,double对于所有这些类型,size()函数返回1。
Char array对于char数组,size()函数返回数组中的字符数。
Byte array对于bytearray,size()函数返回数组中的字节数。
Tuple对于元组,size()函数返回元组中的字段数。
Bag对于包,size()函数返回包中的元组数。
Map对于映射,size()函数返回映射中键/值对的数量。

假设在HDFS目录 /pig_data/ 中有一个名为 employee.txt 的文件,如下所示。

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 

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

grunt> employee_data = LOAD 'hdfs://localhost:9000/pig_data/ employee.txt' USING PigStorage(',')
   as (id:int, name:chararray, workdate:chararray, daily_typing_pages:int);

计算类型的大小

要计算特定列的类型大小,可以使用 SIZE() 函数。让我们计算name类型的大小,如下所示。

grunt> size = FOREACH employee_data GENERATE SIZE(name);

验证

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

grunt> Dump size;

输出

它将产生以下输出,显示关系 size 的内容如下。在示例中,我们计算了 name 列的大小。由于它是varchar类型,因此 SIZE() 函数给出每个员工姓名中的字符数。

(4) 
(3) 
(4) 
(4) 
(4) 
(4) 
(4) 


温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

Pig Latin 介绍

Apache Pig 有用的资源

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }