【问题标题】:How to write a dataframe in pyspark having null values to CSV如何在 pyspark 中将具有空值的数据框写入 CSV
【发布时间】:2017-06-24 18:09:18
【问题描述】:

我正在使用以下代码写入 CSV 文件。

df.coalesce(1).write.format("com.databricks.spark.csv").option("header", "true").option("nullValue"," ").save("/home/user/test_table/")

当我执行它时,我收到以下错误:

java.lang.UnsupportedOperationException:CSV 数据源不支持空数据类型。

有人可以帮忙吗?

【问题讨论】:

  • 能否更新附加df.printSchema()结果的问题?
  • 你的空值是如何存储的?当我使用 Python 的 None 类型作为空对象并进行保存时,它工作正常。 df = sqlContext.createDataFrame([ (1.0, "Hi I heard about Spark"), (1.0, "Spark is awesome"), (0.0, None), (0.0, "And I don't know why...") ], ["label", "sentence"]) df.printSchema() df.coalesce(1).write.format("com.databricks.spark.csv")\ .option("header", "true")\ .option("nullValue"," ").save(drive+"/test.csv")
  • 你找到答案了吗?

标签: python apache-spark pyspark


【解决方案1】:

我遇到了同样的问题(没有使用带有nullValue 选项的命令),我通过使用fillna 方法解决了它。

而且我还意识到 fillna 不能与 _corrupt_record 合作,所以我放弃了,因为我不需要它。

df = df.drop('_corrupt_record')
df = df.fillna("")
df.write.option('header', 'true').format('csv').save('file_csv')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-08
    • 2018-10-04
    • 1970-01-01
    • 1970-01-01
    • 2014-01-24
    • 2023-02-21
    • 1970-01-01
    相关资源
    最近更新 更多