是否有一个类来表示"分组和减少"?

时间:2016-04-07 12:46:36

标签: scalding

在Scalding中考虑以下代码:

我们说我在烫伤TypedPipe[(Int, Int)]中有以下元组:

(1, 2)
(1, 3)
(2, 1)
(2, 2)

在此管道上,我可以调用groupBy(t => t._1)生成Grouped[Int, (Int, Int)],它仍然代表相同的数据,但按元组的第1项分组。

现在,让我们说我对得到的对象求和,所以总流量是这样的:

def sumGroup(a : TypedPipe[(Int, Int)]) : Grouped[Int, (Int, Int)] =
    {
    a.groupBy(t => t._1).sum
    }

在初始示例中执行此操作的结果将导致以下元组:

(1, (2, 5))
(2  (4, 3))

现在我们确定每个键只有一个项目(对于键#34; 1",我们只有一个结果元组),因为这是sum的行为。但是,sum返回的类型仍然是Grouped[Int, (Int, Int)],这并没有表明每个键只能有一个项目的事实。

是否有像Grouped[K, V]这样的特定类型会传达出只有一个" V"给定" K"的价值价值?如果没有,为什么会这样?

当我们可以确定双方每个键确实只有一个值时,优化连接似乎很有用。

0 个答案:

没有答案