groupBy toList元素顺序

时间:2014-07-23 10:49:50

标签: scala hadoop mapreduce cascading scalding

我有一个包含多个字段的RichPipe,比如说:

'sex
'weight
'age

我需要按'性别分组,然后获取元组列表('体重和'年龄)。然后,我想在每个组的列表上执行scanLeft操作,并获得一个包含“sex and”结果的管道。我目前通过

来做到这一点
pipe.groupBy('sex) {_.toList('weight -> 'weights).toList('age - 'ages)}

然后将两个列表压缩在一起。我不确定这是最好的方法,而且我也不确定列表中值的顺序是否相同,所以当我压缩两个列表时,元组不会混淆错误值。我在文档中没有发现任何相关内容。

1 个答案:

答案 0 :(得分:1)

好的,所以看起来我已经回答了我自己的问题。

你可以简单地做

pipe.groupBy('sex) {_.toList[(Int, Int)](('weight, 'age) -> 'list)}

导致元组列表。如果Fields API Reference提到了这一点,我会为我节省很多时间。