在 Databricks 中保存到 Azure Data Lake 时指定镶木地板文件名

Specify parquet file name when saving in Databricks to Azure Data Lake

当我在 Databricks 中将 parquet 文件保存到 Azure Data Lake 时,有没有办法指定它的名称?例如,当我尝试 运行 以下语句时:

append_df.write.mode('append').format('parquet').save('/mnt/adls/covid/base/Covid19_Cases')

创建了一个名为 Covid_Cases 的文件夹,其中包含随机名称的镶木地板文件。

我想做的是在数据工厂副本中使用保存的 parquet 文件 activity。为此,我需要指定 parquet 文件的名称,否则我无法指向特定文件。

由于 spark 是在分布式模式下执行的,并且文件或其相关文件,例如数据框,正在并行处理,处理后的数据将存储在同一文件夹中的不同文件中。您可以使用文件夹级别名称来复制数据工厂 activity。但是你真的想把它做成单个文件,你可以使用下面的方法,

save_location= "/mnt/adls/covid/base/Covid19_Cases"+year
parquet_location = save_location+"temp.folder"
file_location = save_location+'export.parquet'

df.repartition(1).write.parquet(path=parquet_location, mode="append", header="true")

file = dbutils.fs.ls(parquet_location)[-1].path
dbutils.fs.cp(file, file_location)
dbutils.fs.rm(parquet_location, recurse=True)