【问题标题】:Unable to Save Apache Spark parquet file to csv with Databricks无法使用 Databricks 将 Apache Spark parquet 文件保存到 csv
【发布时间】:2021-12-14 22:05:16
【问题描述】:

我正在尝试使用 Databricks 在 Apache Spark 上将 parquet 文件保存/转换为 csv,但运气不佳。

以下代码成功写入名为 tempDelta 的文件夹:

df.coalesce(1).write.format("parquet").mode("overwrite").option("header","true").save(saveloc+"/tempDelta")

然后我想将 parquet 文件转换为 csv,如下所示:

df.coalesce(1).write.format("parquet").mode("overwrite").option("header","true").save(saveloc+"/tempDelta").csv(saveloc+"/tempDelta")


AttributeError                            Traceback (most recent call last)
<command-2887017733757862> in <module>
----> 1 df.coalesce(1).write.format("parquet").mode("overwrite").option("header","true").save(saveloc+"/tempDelta").csv(saveloc+"/tempDelta")

AttributeError: 'NoneType' object has no attribute 'csv'

写信到该位置后,我也尝试了以下方法:

df.write.option("header","true").csv(saveloc+"/tempDelta2")

但它得到了错误:

A transaction log for Databricks Delta was found at `/CURATED/F1Area/F1Domain/final/_delta_log`,
but you are trying to write to `/CURATED/F1Area/F1Domain/final/tempDelta2` using format("csv"). You must use
'format("delta")' when reading and writing to a delta table.

当我尝试将 csv 保存到不是 delta 文件夹的文件夹时,我收到以下错误:

df.write.option("header","true").csv("testfolder")


AnalysisException: CSV data source does not support struct data type.

有人可以告诉我使用 Databricks 将 parquet 保存/转换为 csv 的最佳方法

【问题讨论】:

标签: apache-spark azure-databricks


【解决方案1】:

您可以使用以下 2 个选项中的任何一个

1. df.write.option("header",true).csv(path)

2. df.write.format("csv").save(path)

注意:您不能将格式作为 parquet 并同时使用 .csv 函数。

【讨论】:

    猜你喜欢
    • 2015-10-28
    • 2018-07-05
    • 2017-09-06
    • 1970-01-01
    • 1970-01-01
    • 2018-04-04
    • 1970-01-01
    • 1970-01-01
    • 2017-03-29
    相关资源
    最近更新 更多