1

作为使用 Scalding 进行某些计算的最后一步,我想计算管道中列的多个平均值。但是下面的代码不起作用

myPipe.groupAll { _average('col1,'col2, 'col3) }

sum, max, average有没有什么方法可以在不进行多次传递的情况下计算这些函数?我担心性能,但也许 Scalding 足够聪明,可以以编程方式检测到这一点。

4

2 回答 2

3

这个问题在级联用户论坛中得到了回答。在这里留下答案作为参考

myPipe.groupAll { _.average('col1).average('col2).average('col3) }
于 2013-04-01T16:39:34.347 回答
1

您可以使用以下函数一次性完成大小(也称为计数)、平均值和标准开发。

// Find the count of boys vs. girls, their mean age and standard deviation. 
// The new pipe contains "sex", "count", "meanAge" and "stdevAge" fields.
val demographics = people.groupBy('sex) { _.sizeAveStdev('age -> ('count, 'meanAge, 'stdevAge) ) }

找到最大值将需要另一次通过。

于 2013-12-19T22:19:13.517 回答