Pig Latin的 TOMAP() 函數(shù)用于將key-value對轉(zhuǎn)換為Map。
下面給出了 TOMAP() 函數(shù)的語法。
grunt> TOMAP(key-expression, value-expression [, key-expression, valueexpression ...])
假設(shè)在HDFS目錄 /pig_data/ 中有一個名為 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)在讓我們將每個記錄的名稱和年齡作為key-value對,并將它們轉(zhuǎn)換為map,如下所示。
grunt> tomap = FOREACH emp_data GENERATE TOMAP(name, age);
您可以使用 Dump 運算符驗證 tomap 關(guān)系的內(nèi)容,如下所示。
grunt> DUMP tomap; ([Robin#22]) ([BOB#23]) ([Maya#23]) ([Sara#25]) ([David#23]) ([Maggy#22])
更多建議: