如何在pyspark中使用df.write.csv附加到csv文件?

kak*_*aks 5 apache-spark pyspark

我正在尝试将数据附加到我的csv文件中df.write.csv.这是我在关注spark文档http://spark.apache.org/docs/2.0.1/api/python/pyspark.sql.html#pyspark.sql.DataFrameWriter之后所做的:

from pyspark.sql import DataFrameWriter
.....
df1 = sqlContext.createDataFrame(query1)
df1.write.csv("/opt/Output/sqlcsvA.csv", append) #also tried 'mode=append'
Run Code Online (Sandbox Code Playgroud)

执行上面的代码给我错误:

NameError:名称'append'未定义

没有附加,错误:

路径已经存在.

Zha*_*ong 7

df.write.save(path='csv', format='csv', mode='append', sep='\t')
Run Code Online (Sandbox Code Playgroud)

  • 在写入之前包括`.coalesce(1)`,它会阻止分区,不确定是否会附加结果!`df.coalesce(1).write.save(path ='csv',format ='csv',mode ='append',sep ='\ t')` (4认同)

Ant*_*hyi 1

我不了解 Python,但在 Scala 和 Java 中,可以通过以下方式设置保存模式:

df.write.mode("append").csv("pathToFile")
Run Code Online (Sandbox Code Playgroud)

我认为Python 中应该是类似的。可能会有所帮助。

  • 不需要手动合并,编写时使用`.repartition(1)`即可。当您将文件读回数据帧时,从技术上讲,它不会合并它们,因为数据帧分布在集群中。每个文件将成为数据帧分区的基础。因此,从某种意义上说,您确实拥有一个数据框,但它仍然位于许多底层部分中。 (2认同)