2017-06-26 18 views
1

私はspark 2.1を使用しています。結果を含むcsvをAmazon S3に書きたいと思います。 csvファイルを再分割した後は、長いクリプティックな名前があり、特定のファイル名に変更する必要があります。書き込まれたCSVファイルの名前を変更します。Spark

私はS3に書き込むためにdatabricks libを使用しています。

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

ファイルの名前を変更したり、正しい名前で直接保存する方法はありますか?私はすでに解決策を探していて、多くは見つけられませんでした。

ありがとうございます。

答えて

2

出力ファイルの名前を変更するには、以下のようにします。

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

ありがとうございますが、Amazon S3を使用しています – Duesentrieb

0

ここで言及したコードはユニットを返します。 Sparkアプリケーションの実行が完了したことを確認する必要があります(これはバッチケースとします)。

dataframe 
.repartition(1) 
.write 
.format("com.databricks.spark.csv") 
.option("header", "true") 
.save("folder/dataframe/") 
関連する問題