我目前正在将Spark DataFrame作为.csv文件存储在Azure上的Blob存储中。我正在使用以下代码。
smtRef2_DF.dropDuplicates().coalesce(1).write
.mode("overwrite")
.format("com.databricks.spark.csv")
.option("header", "true")
.save(csvBlobStorageMount + "/Output/Smt/SmtRef.csv")
这有效,但是会创建一个SmtRef.csv文件夹,实际的.csv文件在其中存储为part-00000-tid.csv。如何指定实际.csv文件的名称?
预先感谢
答案 0 :(得分:1)
如果文件足够小以适合内存,一种解决方法是将其转换为pandas数据框并从那里另存为csv。
df_pd = df.toPandas()
df_pd.to_csv("path")
答案 1 :(得分:0)
Spark API无法实现。
如果要实现此目的,请使用.repartition(1)生成一个PART文件,然后使用Hadoop文件系统api重命名HDFS中的文件
导入org.apache.hadoop.fs._ FileSystem.get(spark.sparkContext.hadoopConfiguration())。rename(新路径(“ oldpathtillpartfile”),新路径(“ newpath”))