Spark - 如何更改合并的镶木地板文件的名称

mad*_*aks 5 amazon-s3 apache-spark parquet databricks

因此,当将 parquet 文件写入 s3 时,我可以使用以下代码更改目录名称:

spark_NCDS_df.coalesce(1).write.parquet(s3locationC1+"parquet")
Run Code Online (Sandbox Code Playgroud)

现在,当我输出此内容时,该目录中的内容如下:

在此输入图像描述

我想做两个改变:

  • 我可以更新该part-0000....snappy.parquet文件的文件名吗?

  • 我可以输出没有_SUCCESS,_committed_started文件的此文件吗?

我在网上找到的文档并不是很有帮助。

Vij*_*rma 2

    out_file_name = snappy.parquet
    path = "mnt/s3locationC1/"
    tmp_path = "mnt/s3locationC1/tmp_data"
    df = spark_NCDS_df

    def copy_file(path,tmp_path,df,out_file_name):
      df.coalesce(1).write.parquet(tmp_path)
      file = dbutils.fs.ls(tmp_path)[-1][0]
      dbutils.fs.cp(file,path+out_file_name)
      dbutils.fs.rm(tmp_path,True)

   copy_file(path,tmp_path,df,out_file_name)
Run Code Online (Sandbox Code Playgroud)

此函数将所需的输出文件复制并粘贴到目标,然后删除临时文件,所有 _SUCCESS、_comfilled 和 _started 也随之删除。

如果您需要更多信息,请告诉我。