【发布时间】:2012-12-02 14:09:12
【问题描述】:
我是 Pig 的新手,我正在尝试正确实现一种有些通用的算法,在该算法中,我需要将一组记录中的每个匹配记录配对。为了将问题提炼成最简单的形式并避免讨论一些特定于业务的敏感性,这里有一个模拟问题:
假设我有一个数据集代表大学课程和参加这些课程的学生:
Philosophy,John
English,Mary
English,Sue
History,Jack
Philosophy,David
English,Mark
English,Larry
我想配对上同一门课的学生之间的每个关联;所以输出将包括这个,显示四个“英语”行爆炸成六个关联:
Philosphy John,David
English Mary,Sue
English Mary,Mark
English Mary,Larry
English Sue,Mark
English Sue,Larry
English Mark,Larry
此页面:http://ofps.oreilly.com/titles/9781449302641/advanced_pig_latin.html 指的是使用 flatten() 来实现叉积。我已经尝试了几种方法并对此进行了广泛的研究,并会发布我的尝试,但老实说,我正在摇摆不定,我认为这只会让读者感到困惑并且不会提供任何价值。但这是样板:
s = load 'classes' using PigStorage(',') as (class:chararray, student:chararray);
grp = group s by class;
...
(我相信我面临的问题与需要多个袋子而不是多个字段的扁平化有关,而且我不知道如何让我的分组生成多个袋子......)
感谢您的帮助!
【问题讨论】:
标签: hadoop apache-pig