如何在Pyspark中将含有null值的DataFrame写入CSV文件

6
我正在使用以下代码将内容写入CSV文件。
df.coalesce(1).write.format("com.databricks.spark.csv").option("header", "true").option("nullValue"," ").save("/home/user/test_table/")

当我执行它时,出现以下错误:
java.lang.UnsupportedOperationException:CSV数据源不支持空数据类型。
请问有人可以帮忙吗?

1
请问您能否更新问题并附上 df.printSchema() 的结果? - Mariusz
1
你的null值是如何存储的?当我在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")`
- data_steve
你能找到答案了吗? - FEST
1个回答

2
我曾经遇到同样的问题(没有使用nullValue选项),后来通过使用fillna方法解决了这个问题。
我还意识到_corrupt_record无法使用fillna,所以我将其删除了,因为我不需要它。
df = df.drop('_corrupt_record')
df = df.fillna("")
df.write.option('header', 'true').format('csv').save('file_csv')

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接