Azure Databricks - 将 Parquet 文件写入策划区域

Posted

技术标签:

【中文标题】Azure Databricks - 将 Parquet 文件写入策划区域【英文标题】:Azure Databricks - Write Parquet file to Curated Zone 【发布时间】:2019-10-16 03:56:31 【问题描述】:

将 parquet 文件写回 DataLake Gen2 时,会创建其他文件。

例子:

%python
rawfile = "wasbs://xxxx@dxxxx.blob.core.windows.net/xxxx/2019-09-30/account.parquet"
curatedfile = "wasbs://xxxx@xxxx.blob.core.windows.net/xxxx-Curated/2019-09-30/account.parquet"
dfraw = spark.read.parquet(rawfile)
dfraw.write.parquet(curatedfile, mode = "overwrite")
display(dfraw)

提供的文件名 (account.parquet) 记入创建的文件夹,而不是创建具有该名称的文件。

如何忽略这些附加文件并使用提供的名称写入文件。

【问题讨论】:

【参考方案1】:

当用户在作业中写入文件时,DBIO 将为您执行以下操作。

使用唯一事务 ID 编写的标记文件。 将文件直接写入其最终位置。 在作业提交时将事务标记为已提交。

在Spark的存档中不能直接修改文件名。

Spark 使用 Hadoop 文件格式,这需要对数据进行分区 - 这就是您拥有部分文件的原因。您可以在处理后轻松更改文件名,就像在SO 线程中一样。

您可以参考类似的SO 线程,它解决了类似的问题。

希望这会有所帮助。

【讨论】:

以上是关于Azure Databricks - 将 Parquet 文件写入策划区域的主要内容,如果未能解决你的问题,请参考以下文章

将 Azure Databricks 增量表迁移到 Azure Synapse SQL 池

Databricks:将数据框合并到 Azure 突触表中

使用 /mnt/ 将数据从 Azure Blob 存储读取到 Azure Databricks

将数据存储到 PySpark (Azure - DataBricks) 中的数据库非常慢

为啥 Azure Databricks 需要将数据存储在 Azure 的临时存储中

使用 Databricks 将文件从 Azure 文件移动到 ADLS Gen 2 并返回