首页 > 解决方案 > 如何将 PySpark 中的 DataFrame 输出保存到 TextFile?

问题描述

我在下面有一个 DataFrame(表),我在 _3 和 _4 列上使用 sum 函数。

df.show()
+---------+------+---+---+
|       _1|    _2| _3| _4|
+---------+------+---+---+
| playerID|yearID| HR|RBI|
|aardsda01|  2004|  0|  0|
|aardsda01|  2006|  0|  0|
|aardsda01|  2007|  0|  0|
|aardsda01|  2008|  0|  0|
|aardsda01|  2009|  0|  0|
|aardsda01|  2010|  0|  0|
|aaronha01|  1954| 13| 69|
|aaronha01|  1955| 27|106|
|aaronha01|  1956| 26| 92|
|aaronha01|  1957| 44|132|
|aaronha01|  1958| 30| 95|
|aaronha01|  1959| 39|123|
|aaronha01|  1960| 40|126|
|aaronha01|  1961| 34|120|
|aaronha01|  1962| 45|128|
|aaronha01|  1963| 44|130|
|aaronha01|  1964| 24| 95|
|aaronha01|  1965| 32| 89|
|aaronha01|  1966| 44|127|
+---------+------+---+---+
only showing top 20 rows

我想将以下输出存储到 TextFile。

df.agg({'_3':'sum','_4':'sum'}).show()
+--------+---------+                                                            
| sum(_3)|  sum(_4)|
+--------+---------+
|264983.0|1642662.0|

标签: pyspark

解决方案


这个问题是重复的。

您可以使用 databricks 格式将输出保存为文本文件:

myDF.write.format("com.databricks.spark.csv").option("header", "true").save("output.csv")

在您的情况下,您可以使用:

df.agg({'_3':'sum','_4':'sum'}).write.format("com.databricks.spark.csv").option("header", "true").save("output.csv")

推荐阅读