这个SIZE()Pig Latin 的函数用于计算基于任何 Pig 数据类型的元素数量。
用法
下面给出的是SIZE()函数。
grunt> SIZE(expression)
返回值因 Apache Pig 中的数据类型而异。
数据类型 | 值 |
---|---|
整型、长型、浮点型、双精度型 | 对于所有这些类型,size 函数返回 1。 |
字符数组 | 对于字符数组,size() 函数返回数组中的字符数。 |
字节数组 | 对于字节数组,size() 函数返回数组中的字节数。 |
Tuple | 对于元组,size() 函数返回元组中的字段数。 |
Bag | 对于包,size() 函数返回包中的元组数。 |
Map | 对于Map,size() 函数返回Map中键/值对的数量。 |
示例
假设我们有一个名为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);
计算类型的大小
要计算特定列的类型的大小,我们可以使用SIZE()函数。让我们计算名称类型的大小,如下所示。
grunt> size = FOREACH employee_data GENERATE SIZE(name);
确认
验证关系size使用DUMP操作符如下图。
grunt> Dump size;
输出
它将产生以下输出,显示关系的内容size如下。在示例中,我们计算了name柱子。由于它是 varchar 类型,因此SIZE()函数为您提供每个员工姓名中的字符数。
(4) (3) (4) (4) (4) (4) (4)
相关用法
- Apache Pig SINH()用法及代码示例
- Apache Pig SIN()用法及代码示例
- Apache Pig SQRT()用法及代码示例
- Apache Pig SUBSTRING()用法及代码示例
- Apache Pig SUBTRACT()用法及代码示例
- Apache Pig SecondsBetween()用法及代码示例
- Apache Pig SubtractDuration()用法及代码示例
- Apache Pig SUM()用法及代码示例
- Apache Pig STARTSWITH()用法及代码示例
- Apache Pig STRSPLIT()用法及代码示例
- 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 - SIZE()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。