Apache spark Spark编写具有自定义扩展名的文件

Apache spark Spark编写具有自定义扩展名的文件,apache-spark,apache-spark-sql,Apache Spark,Apache Spark Sql,我有一个包含一行文本的数据框。我需要编写,而每个文件(来自每个数据帧分区)都有自定义扩展名.XYZ。目前,我正在使用以下代码编写文件: dataFrame.write.text(outputPath) 但是,此代码使用默认扩展名编写文件。 目前,我通过在编写文件后重命名文件来控制扩展名,我希望通过编写具有所需扩展名的文件来优化扩展名。 如何使用不同于默认值的扩展名写入文件?您可以对所有文件使用相同的扩展名 df.write.format("csv/txt/parquest/etc").mode

我有一个包含一行文本的数据框。我需要编写,而每个文件(来自每个数据帧分区)都有自定义扩展名
.XYZ
。目前,我正在使用以下代码编写文件:

dataFrame.write.text(outputPath)
但是,此代码使用默认扩展名编写文件。 目前,我通过在编写文件后重命名文件来控制扩展名,我希望通过编写具有所需扩展名的文件来优化扩展名。
如何使用不同于默认值的扩展名写入文件?

您可以对所有文件使用相同的扩展名

df.write.format("csv/txt/parquest/etc").mode("overwrite").save("outputPath")
对于每个分区,您可以尝试使用不同的文件扩展名

val files = List("abc.csv","bdc.txt")
  df.repartition(2).rdd.mapPartitionsWithIndex((idx,itr)=>itr.map(x=>(x,idx))).foreachPartition { itr => {
    if (itr.hasNext) {
      val lst=itr.toList
      val index = lst(0)._2
      val bw = new BufferedWriter(new FileWriter("abc." + extension(index)))
      val stringToWrite = lst.mkString("\n")

      bw.write(stringToWrite)
      bw.close()
    }
  }
  }

第一个选项不适用于我,因为我需要自定义扩展。第二个选项完成了工作,尽管我不得不根据自己的需要修改它。谢谢你的回答