如何在Scala中将DataFrame导出到csv?

Ton*_*ong 9 csv scala apache-spark

如何使用Scala将Spark的DataFrame导出到csv文件?

kar*_*ala 13

最简单和最好的方法是使用spark-csv库.您可以查看提供的链接中的文档,这here是如何从/向DataFrame加载和保存数据的scala示例.

代码(Spark 1.4+):

dataFrame.write.format("com.databricks.spark.csv").save("myFile.csv")
Run Code Online (Sandbox Code Playgroud)

编辑:

Spark在保存csv数据的同时创建了部分文件,如果要将部分文件合并到单个csv中,请参阅以下内容:

将Spark的CSV输出文件夹合并到单个文件


Tay*_*lrl 9

在2+的火花版中你可以简单地使用以下内容;

df.write.csv("/your/location/data.csv")
Run Code Online (Sandbox Code Playgroud)

如果要确保文件不再分区,请.coalesce(1)按如下方式添加;

df.coalesce(1).write.csv("/your/location/data.csv")
Run Code Online (Sandbox Code Playgroud)


Abu*_*oeb 7

以上解决方案将csv导出为多个分区.我在此stackoverflow页面中找到了zero323的另一个解决方案,它将数据帧导出到一个CSV文件中.

df.coalesce(1)
  .write.format("com.databricks.spark.csv")
  .option("header", "true")
  .save("/your/location/mydata")
Run Code Online (Sandbox Code Playgroud)