当前位置:   article > 正文

pythonspark 写入csv_将Spark DataFrame的内容保存为一个CSV文件

pyspark将流式dataframe写入csv

对于那些仍想做到这一点这里就是我得到了它使用的火花2.1斯卡拉一些java.nio.file帮助下完成的。

val df: org.apache.spark.sql.DataFrame = ??? // data frame to write

val file: java.nio.file.Path = ??? // target output file (i.e. 'out.csv')

import scala.collection.JavaConversions._

// write csv into temp directory which contains the additional spark output files

// could use Files.createTempDirectory instead

val tempDir = file.getParent.resolve(file.getFileName + "_tmp")

df.coalesce(1)

.write.format("com.databricks.spark.csv")

.option("header", "true")

.save(tempDir.toAbsolutePath.toString)

// find the actual csv file

val tmpCsvFile = Files.walk(tempDir, 1).iterator().toSeq.find { p =>

val fname = p.getFileName.toString

fname.startsWith("part-00000") && fname.endsWith(".csv") && Files.isRegularFile(p)

}.get

// move to desired final path

Files.move(tmpCsvFile, file)

// delete temp directory

Files.walk(tempDir)

.sorted(java.util.Comparator.reverseOrder())

.iterator().toSeq

.foreach(Files.delete(_))

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/609217
推荐阅读
相关标签
  

闽ICP备14008679号