为什么Spark在以csv格式保存数据帧时会创建多个csv文件?

时间:2018-03-28 18:19:50

标签: scala csv apache-spark apache-spark-sql

我想了解spark如何在将数据帧保存为csv文件时确定它创建的csv文件的数量。分区数是否会影响此数字?为什么要创建一些空文件?我有如下代码

dataframe.coalesce(numPartitions).write
   .format("com.databricks.spark.csv")
   .option("delimiter", "|")
   .option("header", "true")
   .mode("overwrite")
   .save("outputpath")

1 个答案:

答案 0 :(得分:2)

csv或任何其他格式保存时,存在多个文件,因为数据帧的分区数量过多。如果您有n个分区,则输出中会保存n个文件。

  

分区数是否影响此数字?

是的,分区数等于文件数。 saviong datarfame / rdd每个分区都写成一个文件。

  

为什么要创建一些空文件?

所有分区可能都不包含数据

希望这有帮助!