我对Pig不熟悉。我有下面的输出。
(001,Kumar,Jayasuriya,1123456754,Matara)
(001,Kumar,Sangakkara,112722892,Kandy)
(001,Rajiv,Reddy,9848022337,Hyderabad)
(002,siddarth,Battacharya,9848022338,Kolkata)
(003,Rajesh,Khanna,9848022339,Delhi)
(004,Preethi,Agarwal,9848022330,Pune)
(005,Trupthi,Mohanthy,9848022336,Bhuwaneshwar)
(006,Archana,Mishra,9848022335,Chennai)
(007,Kumar,Dharmasena,758922419,Colombo)
(008,Mahela,Jayawerdana,765557103,Colombo)
如何创建上面的Map,使输出看起来像,
001#{(Kumar,Jayasuriya,1123456754,Matara),(Kumar,Sangakkara,112722892,Kandy),(001,Rajiv,Reddy,9848022337,Hyderabad)}
002#{(siddarth,Battacharya,9848022338,Kolkata)}
我试过tomap函数。
mapped_students = FOREACH students GENERATE TOMAP($0,$1..);
但是我无法转储上述命令的输出,因为进程抛出错误并在那里停止。任何帮助都将不胜感激。
1条答案
按热度按时间0vvn1miw1#
我认为您正在尝试实现的是将记录分组为具有相同id的元组。
根据tomap函数,它将键/值表达式对转换为一个Map,因此您将无法对rest记录进行分组,并将导致类似于无法打开alias的迭代器。。
根据您的期望输出,这里是一段代码。
如果不想给出模式,则:
希望这有帮助。。