gpt4 book ai didi

scala - reduceByKey(_++ _) 是什么意思

转载 作者:行者123 更新时间:2023-12-04 18:02:06 25 4
gpt4 key购买 nike

最近我有一个场景将数据存储在 keyValue Pair 中,并遇到了一个函数 reduceByKey(_ ++ _) .这更多是速记语法。我无法理解这实际上意味着什么。

例如:reduceBykey(_ + _)意味着 reduceByKey((a,b)=>(a+b))
所以reduceByKey(_ ++ _)方法 ??

我可以使用 reduceByKey(_ ++ _) 从数据中创建键值对.

val y = sc.textFile("file:///root/My_Spark_learning/reduced.txt")

y.map(value=>value.split(","))
.map(value=>(value(0),value(1),value(2)))
.collect
.foreach(println)

(1,2,3)
(1,3,4)
(4,5,6)
(7,8,9)

y.map(value=>value.split(","))
.map(value=>(value(0),Seq(value(1),value(2))))
.reduceByKey(_ ++ _)
.collect
.foreach(println)

(1,List(2, 3, 3, 4))
(4,List(5, 6))
(7,List(8, 9))

最佳答案

reduceByKey(_ ++ _)转换为 reduceByKey((a,b) => a ++ b) .
++method定义于 List将另一个列表连接到它。

因此,对于样本数据中的键 1,a将是 List(2,3)b将是 List(3,4)因此 List(2,3) 的串联和 List(3,4) ( List(2,3) ++ List(3,4) ) 将产生 List(2,3,3,4) .

关于scala - reduceByKey(_++ _) 是什么意思,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44126296/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com