【问题标题】:Something strange about groupBy on spark火花上的 groupBy 有点奇怪
【发布时间】:2022-08-19 12:48:39
【问题描述】:

我正在学习 spark 上的 groupBy 函数,我创建了一个包含 2 个分区的列表,然后使用 groupBy 来获取每个奇数和偶数。我发现如果我定义

val rdd = sc.makeRDD(List(1, 2, 3, 4),2) 
val result = rdd.groupBy(_ % 2 )

结果将转到他们自己的分区。但是如果我定义

val result = rdd.groupBy(_ % 2 ==0)

结果变成了一个分区。有人可以解释为什么吗?

  • groupBy(_ % 2 ) 得到结果 0 或 1 ,groupby(_ % 2==0) 得到结果 true 或 false

标签: apache-spark


【解决方案1】:

这只是应用于groupBy Shuffle 的hashing

 val rdd = sc.makeRDD(List(1, 2, 3, 4), 5) 

使用 5 个分区,您会看到 2 个分区已使用,3 个为空。只是一个算法。

【讨论】:

    猜你喜欢
    • 2020-07-18
    • 2018-05-18
    • 2017-06-02
    • 2019-01-07
    • 1970-01-01
    • 2014-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多