【问题标题】:Write empty DF with header to csv将带有标题的空 DF 写入 csv
【发布时间】:2020-10-04 10:30:24
【问题描述】:

当您尝试使用 emptyDF 创建 csv 文件时,即使 header 选项为 true(header=true),Spark 也会创建一个没有标题的空文件

import ss.implicits._
val df = List((1, "kishore", 22000)).toDF("id", "name", "salary")
val emptyDF = df.where("id != 1")
emptyDF.show()

emptyDF.write.option("header", true).csv("folder/filename.csv")

是否可以为 emptyDF 创建带有标题的 csv 文件?

【问题讨论】:

    标签: scala apache-spark apache-spark-sql


    【解决方案1】:
    if(emptyDF.take(1).isEmpty){
      //To create Headers on empty DF
      ss.createDataFrame(List(Row.fromSeq(emptyDF.schema.fieldNames)).asJava, StructType(emptyDF.schema.fieldNames.map{n => StructField(n, StringType)}))
        .write.option("header", false).csv("folder/filename.csv")
    } else {
      emptyDF.write.option("header", true).csv("folder/filename.csv")
    }
    

    【讨论】:

      猜你喜欢
      • 2018-03-12
      • 1970-01-01
      • 1970-01-01
      • 2011-03-23
      • 2018-02-07
      • 2018-05-15
      • 1970-01-01
      • 1970-01-01
      • 2016-04-18
      相关资源
      最近更新 更多