【问题标题】:How can I save a spark DF as a CSV file?如何将 spark DF 保存为 CSV 文件?
【发布时间】:2020-02-10 10:41:13
【问题描述】:

我有一些循环文件并创建数据框 (DF) 的 Python 代码。另外,我正在将 Python DF 转换为 Spark DF。这很好用。

# convert python df to spark df and export the spark df
spark_df = spark.createDataFrame(DF)

现在,我正在尝试将 Spark DF 保存为 CSV 文件。

## Write Frame out as Table
spark_df.write.mode("overwrite").save("dbfs:/rawdata/AAA.csv")

上面的代码直接运行,但它没有创建 CSV,或者至少我无法在我期望的位置找到它。一定有办法做到这一点!请提供一些指导。谢谢。

【问题讨论】:

  • 好吧,这很奇怪。当我运行这个:spark_df.write.csv(dbfs:/rawdata/AAA.csv"),它说文件已经存在,但我在任何地方都看不到它!
  • dbfs ls -r /rawdata 在此处打印输出,否则我们无法真正判断发生了什么。
  • @asher 使用 databricks 笔记本?要查看文件,请单击笔记本左侧面板上的“数据”图标,然后单击该面板顶部的“添加数据”,然后单击“DBFS”,查看您在那里写的文件..您运行的代码看起来很有希望.
  • 哦,是的,这对我来说是一个新技巧。我以前从未见过/尝试过。我按照你的建议做了,但我认为这对我获取数据没有帮助。我看到“AAA.csv”,这实际上是我的文件的名称,但我仍然看不到如何将结果下载到我的桌​​面。我知道云无法识别我的桌面,“本身”,但必须有一种方法可以从湖中提取项目。不应该这么难。啊。感谢您的努力。
  • @asher 如果您能够看到dbfs 中的文件,您的问题是如何将文件从dbfs 下载到local machine。请关闭此问题并打开新问题。

标签: dataframe apache-spark pyspark databricks


【解决方案1】:

Spark 在写入数据帧时采用输出目录的路径而不是输出文件,因此您提供的路径“dbfs:/rawdata/AAA.csv”将创建目录 AAA.csv 而不是文件。您需要检查目录而不是文件。 在目录中,您将根据执行者的数量获得多个 csv 文件。

【讨论】:

  • "在目录中,您将根据执行者的数量获得多个 csv 文件。"这是不正确的。
猜你喜欢
  • 1970-01-01
  • 2020-09-15
  • 1970-01-01
  • 2018-05-31
  • 2017-09-12
  • 2017-03-15
  • 2018-07-15
  • 2014-02-11
  • 2020-12-30
相关资源
最近更新 更多