1

Ich bin Spark 2.1 laufen und ich möchte eine CSV mit Ergebnissen in Amazon S3 schreiben. Nach der Neupartitionierung hat die CSV-Datei eine Art kryptischen Namen und ich möchte das in einen bestimmten Dateinamen ändern.Benennen Sie geschriebene CSV-Datei Spark

Ich benutze die Databricks lib zum Schreiben in S3.

Gibt es eine Möglichkeit, die Datei anschließend umzubenennen oder sogar direkt unter dem richtigen Namen zu speichern? Ich habe bereits nach Lösungen gesucht und nicht viel gefunden.

Dank

Antwort

2

können Sie unten verwenden, um die Ausgabedatei umbenennen.

dataframe.repartition(1).write.format("com.databricks.spark.csv").option("header", "true").save("folder/dataframe/") 

import org.apache.hadoop.fs._ 

val fs = FileSystem.get(sc.hadoopConfiguration) 

val filePath = "folder/dataframe/" 
val fileName = fs.globStatus(new Path(filePath+"part*"))(0).getPath.getName 

fs.rename(new Path(filePath+fileName), new Path(filePath+"file.csv")) 
+0

Hey danke, aber ich benutze Amazon S3 – Duesentrieb

0

Der Code, wie Sie hier erwähnt haben, gibt eine Einheit zurück. Sie müssten bestätigen, wenn Ihre Spark-Anwendung den Lauf beendet hat (vorausgesetzt, es handelt sich um eine Stapelverarbeitung) und dann umbenennen

dataframe 
.repartition(1) 
.write 
.format("com.databricks.spark.csv") 
.option("header", "true") 
.save("folder/dataframe/")