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

Posted

技术标签:

【中文标题】使用 Databricks 将文件从 Azure 文件移动到 ADLS Gen 2 并返回【英文标题】:Move Files from Azure Files to ADLS Gen 2 and Back using Databricks 【发布时间】:2021-10-18 23:19:06 【问题描述】:

我有一个 Databricks 进程,它当前生成一堆文本文件,这些文件存储在 Azure 文件中。这些文件需要按计划移至 ADLS Gen 2 并移回文件共享。

如何使用 Databricks 实现这一点?

【问题讨论】:

你试过什么?以下是如何将 Azure 文件装载到数据块的说明。 docs.microsoft.com/en-us/answers/questions/133702/… 但我不建议你这样做。相反,找出哪个 Web API 可以让您直接复制文件(而不是读入数据帧并写回),然后调用该 Web API。事实上,如果你只是简单地复制文件,我建议你不要使用数据块,使用更简单的东西来复制文件,例如 Azure 自动化或 Azure Functions,或者可能是 Azure 数据工厂 您可以首先尝试使用 AzCopy,但您需要使语法完全正确。 docs.microsoft.com/en-us/azure/storage/common/… 这是一个 Azure 自动化示例,可以满足您的需求。 charbelnemnom.com/… 我建议在问问题之前先在谷歌上搜索一下并尝试一些事情。 【参考方案1】:

在 Azure Databricks 上安装 azure-storage 包并使用适用于 Python 的 Azure Files SDK 是访问 Azure Files 中文件的唯一方法。

安装库:file-share azure-storage https://pypi.org/project/azure-storage-file-share/

注意: pip install 只在驱动节点上安装包,因此必须先加载pandas。该库必须先部署为 Databricks 库,然后才能供 Spark 工作程序节点使用。

Python - 将文件从 Azure 文件加载到 Azure Databricks - Stack Overflow

替代方案可能是使用复制活动通过 Azure DataFactory 将数据从 Azure 文件存储复制到 ADLS2:Copy data from/to Azure File Storage - Azure Data Factory & Azure Synapse | Microsoft Docs

【讨论】:

以上是关于使用 Databricks 将文件从 Azure 文件移动到 ADLS Gen 2 并返回的主要内容,如果未能解决你的问题,请参考以下文章

如何将所有文件从 blob 存储容器导入和处理到 azure databricks

从 Azure Databricks 将数据写入 Azure Blob 存储

无法从 azure databricks 在 azure data Lake 中保存文件

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

使用 Azure databricks /Synapse notebooks 中的 Json.load 从 Azure datalake 读取 Json 文件作为文件

使用 azure databricks 读取 azure databricks 日志 json 文件