我有一个DataFrame,其中包含一行文本。我需要编写,而每个文件(来自每个DataFrame分区)都具有自定义扩展名.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()
}
}
}