#scala #apache-spark #apache-spark-sql
#scala #apache-spark #apache-spark-sql
Вопрос:
Spark создает пустой файл без заголовков при попытке создать csv-файл с помощью emptyDF, даже если параметр заголовка имеет значение true(заголовок = true)
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")
возможно ли создать csv-файл с заголовком для emptyDF?
Ответ №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")
}