- Apache Pig 教程
- Apache Pig - 首页
- 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 - Describe 操作符
- Apache Pig - Explain 操作符
- Apache Pig - Illustrate 操作符
- 分组 & 连接
- Apache Pig - Group 操作符
- Apache Pig - Cogroup 操作符
- Apache Pig - Join 操作符
- Apache Pig - Cross 操作符
- Pig Latin 内置函数
- Apache Pig - Eval 函数
- 加载 & 存储函数
- Apache Pig - Bag & Tuple 函数
- Apache Pig - 字符串函数
- Apache Pig - 日期时间函数
- Apache Pig - 数学函数
- Apache Pig 有用资源
- Apache Pig - 快速指南
- Apache Pig - 有用资源
- Apache Pig - 讨论
Apache Pig - SIZE() 函数
Pig Latin 的 SIZE() 函数用于根据任何 Pig 数据类型计算元素的数量。
语法
以下是 SIZE() 函数的语法。
grunt> SIZE(expression)
返回值根据 Apache Pig 中的数据类型而有所不同。
数据类型 | 值 |
---|---|
int、long、float、double | 对于所有这些类型,size 函数都返回 1。 |
字符数组 | 对于字符数组,size() 函数返回数组中字符的数量。 |
字节数组 | 对于字节数组,size() 函数返回数组中字节的数量。 |
元组 | 对于元组,size() 函数返回元组中字段的数量。 |
包 | 对于包,size() 函数返回包中元组的数量。 |
映射 | 对于映射,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://127.0.0.1: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);
验证
使用 DUMP 操作符验证关系 size,如下所示。
grunt> Dump size;
输出
它将生成以下输出,显示关系 size 的内容,如下所示。在本例中,我们计算了 name 列的尺寸。由于它是 varchar 类型,因此 SIZE() 函数会提供每个员工姓名中的字符数。
(4) (3) (4) (4) (4) (4) (4)
apache_pig_eval_functions.htm
广告