【发布时间】:2020-09-29 18:45:33
【问题描述】:
我使用 coalesce(1) 将 Dataframe 写入单个文件,如下所示。
df.coalesce(1).write.format("csv")
.option("header", true).mode("overwrite").save(output_path)
快速浏览文件显示订单已保留,但是否总是如此?如果订单没有保留,我该如何执行? RDD的coalesce函数有一个额外的参数来禁止shuffle,而Dataframe的coalesce方法只需要1个参数。
【问题讨论】:
-
在合并后指定
orderBy以强制排序 -
也许是大祭司给出答案的时候了。
-
我认为这需要一些努力才能弄清楚,尽管已经再次讨论过stackoverflow.com/questions/29284095/…。看看 Avseiytsev Dmitriy 的回答。似乎目前无法保证最终 RDD 的订单保留。这是负责合并算法的类github.com/apache/spark/blob/…
标签: dataframe apache-spark rdd shuffle