scala – Apache Spark中的Shuffled vs non-shuffled coalesce
发布时间:2020-12-16 18:05:42 所属栏目:安全 来源:网络整理
导读:在将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.
在将RDD写入文件之前执行以下转换之间有什么区别?
> coalesce(1,shuffle = true) 代码示例: 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()和shuffled / non-shuffled coalesce()的数据分区方面更感兴趣. 解决方法
shuffle = true和shuffle = false在结果输出中不会有任何实际差异,因为它们都会下降到单个分区.但是,当你将它设置为true时,你将进行一次无用的随机播放.使用shuffle = true,输出均匀分布在分区之间(如果需要,还可以增加分区数),但由于目标是1分区,所以一切都在一个分区中结束.
至于与collect()的比较,区别在于所有数据都存储在单个执行器而不是驱动程序上. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |