當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Apache Pig SIZE()用法及代碼示例



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