這個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()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。