gpt4 book ai didi

scala - Apache Spark中的混洗与非混洗合并

转载 作者:行者123 更新时间:2023-12-04 17:33:52 26 4
gpt4 key购买 nike

在将RDD写入文件之前立即执行以下转换时,它们之间有什么区别?

  • coalesce(1,shuffle = true)
  • coalesce(1,shuffle = false)

  • 代码示例:
    val input = sc.textFile(inputFile)
    val filtered = input.filter(doSomeFiltering)
    val mapped = filtered.map(doSomeMapping)

    mapped.coalesce(1, shuffle = true).saveAsTextFile(outputFile)
    vs
    mapped.coalesce(1, shuffle = false).saveAsTextFile(outputFile)

    以及它与collect()相比如何?我完全知道,Spark保存方法将以HDFS样式的结构存储它,但是我对collect()和改组/未改组/未改组的coalesce()的数据分区方面更感兴趣。

    最佳答案

    shuffle = true和shuffle = false不会在结果输出中产生任何实际差异,因为它们都将下降到单个分区。但是,将其设置为true时,将进行无用的随机播放。使用shuffle = true时,输出均匀地分布在各个分区之间(如果需要,您还可以增加分区的数量),但是由于目标是1个分区,因此所有结果最终都将集中在一个分区中。

    至于与collect()的比较,区别在于所有数据都存储在单个执行程序上,而不是存储在驱动程序上。

    关于scala - Apache Spark中的混洗与非混洗合并,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30899710/

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