Pig Latin的 TOBAG() 函數(shù)將一個(gè)或多個(gè)表達(dá)式轉(zhuǎn)換為單個(gè)元組,這些元組被放在一個(gè)包里。
下面給出了 TOBAG() 函數(shù)的語法。
TOBAG(expression [, expression ...])
假設(shè)在HDFS目錄 /pig_data/ 中有一個(gè)名為 employee_details.txt 的文件,其中包含以下內(nèi)容。
employee_details.txt
001,Robin,22,newyork 002,BOB,23,Kolkata 003,Maya,23,Tokyo 004,Sara,25,London 005,David,23,Bhuwaneshwar 006,Maggy,22,Chennai
通過使用關(guān)系 emp_data 將此文件加載到Pig中,如下所示。
grunt> emp_data = LOAD 'hdfs://localhost:9000/pig_data/employee_details.txt' USING PigStorage(',') as (id:int, name:chararray, age:int, city:chararray);
現(xiàn)在讓我們將每個(gè)員工(記錄)的id,姓名,年齡和城市轉(zhuǎn)換為一個(gè)元組,如下所示。
tobag = FOREACH emp_data GENERATE TOBAG (id,name,age,city);
可以使用 Dump 運(yùn)算符驗(yàn)證 tobag 關(guān)系的內(nèi)容,如下所示。
grunt> DUMP tobag; ({(1),(Robin),(22),(newyork)}) ({(2),(BOB),(23),(Kolkata)}) ({(3),(Maya),(23),(Tokyo)}) ({(4),(Sara),(25),(London)}) ({(5),(David),(23),(Bhuwaneshwar)}) ({(6),(Maggy),(22),(Chennai)})
更多建議: