使用火花和空引号而不是空值编写CSV文件



我正在使用Spark 2.4.1和Scala,并尝试将DF写入CSV文件。似乎在零值的情况下,CSV包含"。是否可以删除那些空的报价?

 val data = Seq(
      Row(1, "a"),
      Row(5, "z"),
      Row(5, null)
    )
    val schema = StructType(
      List(
        StructField("num", IntegerType, true),
        StructField("letter", StringType, true)
      )
    )
    var df = spark.createDataFrame(
      spark.sparkContext.parallelize(data),
      schema
    )
  df.write.csv("location/")

输出看起来像:

1,a
5,z
5,""

我想要:

1,a
5,z
5,

我该怎么办?

谢谢!

您可以使用作者的选项,请参见CSV特定选项(SaveMode与答案无关(;

 df.write
   .option("nullValue", null)
   .mode(SaveMode.Overwrite)
   .csv("location/")

尝试以下:

df.write.option("nullValue",None).save("location/")

最新更新