Spark sortBy:写入时是否保留顺序?

Spark sortBy : is the order preserved when writing?

我有 Scala/Spark :

  myDataframe
   .orderBy("date")
   .write
   .csv(...)

生成的 CSV 是:

part-00000-xxx.csv
part-00001-xxx.csv
part-00002-xxx.csv

问题:

  1. 你知道在 运行 之前的代码之后, "date" 订单将保证保留在单个文件中吗?

  2. 文件之间也是如此?我的意思是 part-00001 中的 "date" 保证优于 part-00000 中的那些?

  3. 如果不行,能否请您post解释一下同时满足这两个要求的代码?

如果您在保存之前执行 .coallesce(1),订单将保留。

您可以添加带有顺序索引的列,也许会对您有所帮助。

myDataframe
.withColumn("order", row_number().over(Window.orderBy('date)))
.write
.csv(...)