加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala – reduceByKey(_ _)是什么意思

发布时间:2020-12-16 09:57:04 所属栏目:安全 来源:网络整理
导读:最近我有一个场景将数据存储在keyValue对中,并遇到了函数reduceByKey(_ _).这更像是速记语法.我无法理解这实际意味着什么. 例如:reduceBykey(_ _)表示reduceByKey((a,b)=(a b)) 所以reduceByKey(_ _)意味着?? 我可以使用reduceByKey(_ _)从数据中创建Key值
最近我有一个场景将数据存储在keyValue对中,并遇到了函数reduceByKey(_ _).这更像是速记语法.我无法理解这实际意味着什么.

例如:reduceBykey(_ _)表示reduceByKey((a,b)=>(a b))

所以reduceByKey(_ _)意味着??

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

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(",Seq(value(1),value(2))))
  .reduceByKey(_ ++ _)
  .collect
  .foreach(println)

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

解决方法

reduceByKey(_ _)转换为reduceByKey((a,b)=> a b).

???是在List上定义的method,它将另一个列表连接到它.

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读