Scala中reduceByKey(_ + _)和reduceByKey(_ ++ _)之间的区别

时间:2016-09-06 09:51:58

标签: scala

reduceByKey( + )和reduceByKey( ++ )之间有什么区别?我知道reduceByKey( + )的内部工作原理。但是reduceByKey( ++ )如何在内部工作。我有谷歌reduceByKey( ++ ),但没有发现任何人都在谈论reduceByKey( + )。

2 个答案:

答案 0 :(得分:0)

这是相同的操作,但减少(即合并)值的方式不同(++而不是+)。例如,如果值是列表,那么++将连接它们

答案 1 :(得分:0)

reduceByKey类型元素集合的

T需要类型为Fucntion2[T, T, U]二进制操作,这意味着它需要一个带有类型的两个参数的函数TU类型的值。

  • 如果为+类型定义T(例如TIntDouble ...),则_ + _会坚持这种预期的类型。
  • 如果为++类型定义T(例如TList时),则_ ++ _会遵守此类型。
  • 如果两者都不正确(例如T是你自己的类没有定义任何这些运算符)那么两者都不会编译。