使用python和scala重命名Azure / databricks的输出文件

时间:2019-10-03 12:51:55

标签: python scala azure databricks

我正在尝试将输出文件从python随机字符集合的默认值重命名为更明智的名称,其中包含日期/时间以使文件名具有唯一性

这是我使用的代码。 python将文件发送到共享驱动器,但名称不可用。我尝试在python代码中搜索某种重命名文件的方法,但是失败了。然后,我开始查看scala,尽管它可以满足我的要求,但几乎可以做到。似乎运行正常,但不产生输出文件,可能与开发人员有关,例如我!!

任何帮助将不胜感激

for index_in_red in df.index.unique():
    my_dpi=96
    plt.figure(figsize=(600/my_dpi, 400/my_dpi), dpi=my_dpi)

    plt.plot(df.loc[df.index != index_in_red,'longitude'],df.loc[df.index != index_in_red,'latitude'] ,
             color='silver', marker='o',linestyle='',linewidth=50, markersize=2)

    plt.plot(df.loc[index_in_red,'longitude'],df.loc[index_in_red,'latitude']  ,
              color='maroon',marker='o',linestyle='',linewidth=2, markersize=3)

    plt.show()

1 个答案:

答案 0 :(得分:0)

创建单个大容量文件到路径,然后重命名,但这不是建议的方法,因为这违反了hadoop分区的概念。

val outputFilePath = "/mnt/data/output"
dfsql.coalesce(1).write.format("com.databricks.spark.csv").option("header", "false").option("delimiter", "|").option("quote","\u0000").mode("overwrite").mode("overwrite").save(outputFileName)
// /mnt/data/output/1234565125435.csv
val outputFileName = "/mnt/data/output/filename.csv"
//Rename /mnt/data/output/1234565125435.csv to /mnt/data/output/filename.csv
rename(outputFilePath, outputFileName)