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


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



Pig Latin BagToString()函數用於將包的元素連接成字符串。在連接時,我們可以在這些值之間放置一個分隔符(可選)。

一般包包都是亂的,可以用ORDER BY操作員。

用法

下麵給出的是BagToString()函數。

grunt> BagToString(vals:bag [, delimiter:chararray])

示例

假設我們有一個名為dateofbirth.txt在 HDFS 目錄中/pig_data/如下所示。該文件包含 date-of-births。

dateofbirth.txt

22,3,1990
23,11,1989
1,3,1998
2,6,1980
26,9,1989

我們已經將此文件加載到 Pig 中,並使用關係名稱dob如下所示。

grunt> dob = LOAD 'hdfs://localhost:9000/pig_data/dateofbirth.txt' USING PigStorage(',')
   as (day:int, month:int, year:int);

將包轉換為字符串

使用bagtostring()函數,我們可以將包中的數據轉換為字符串。讓我們分組dob關係。 group 操作將生成一個包含關係的所有元組的包。

將關係分組dob使用Group All運算符,並將結果存儲在名為的關係中group_dob如下所示。

grunt> group_dob = Group dob All;

它將產生如下所示的關係。

grunt> Dump group_dob; 
 
(all,{(26,9,1989),(2,6,1980),(1,3,1998),(23,11,1989),(22,3,1990)})

在這裏,我們可以觀察到一個包含所有 date-of-births 作為它的元組的包。現在,讓我們使用函數將包轉換為字符串BagToString()

grunt> dob_string = foreach group_dob Generate BagToString(dob);

確認

驗證關係dob_string使用DUMP操作符如下圖。

grunt> Dump dob_string;

輸出

它將產生以下輸出,顯示關係的內容dob_string

(26_9_1989_2_6_1980_1_3_1998_23_11_1989_22_3_1990)

相關用法


注:本文由純淨天空篩選整理自 Apache Pig - BagToString()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。