使用 PySpark 将文件从一个 Azure 存储帐户复制到另一个
Copy files from one Azure storage account to another using PySpark
我正在尝试将名称符合特定条件的文件从一个 Azure 存储帐户(全部在数据湖存储中)复制到另一个。
我目前正在尝试使用 PySpark 来执行此操作。我列出了我想查看的文件夹,然后为“来自”数据湖设置 spark 并使用 dbutils 获取相关文件夹中的文件:
spark.conf.set("fs.azure.account.key."+dev_storage_account_name+".dfs.core.windows.net",dev_storage_account_access_key)
for folder in raw_folders:
list_of_files = dbutils.fs.ls("abfss://mycontainer@mydatalake.dfs.core.windows.net/" + folder)
现在我可以检查文件名是否符合要复制的条件,但我如何才能真正将所需文件列表移动到“目标”数据湖中的文件夹?
您需要安装这两个容器,并使用如下方式跨文件系统移动文件:
内部循环,对于每次迭代,将文件名字段替换为数组中的每个项目list_of_files
dbutils.fs.mv('abfss://<container-name>@<storage-account-name>.dfs.core.windows.net/<directory-name>/demo/test.csv', 'abfss://<container-name>@<storage-account-name>.dfs.core.windows.net/<directory-name>/destination/renamedtest.csv')
还有....
如果容器不是 public,(/ 如果它是根文件夹)则使用 dbfs cli 在之前创建的挂载点之间移动 files/folders。
dbfs mv /mnt/folder1 /mnt/folder2
如果容器的访问级别是“容器和 blob 的匿名读取访问权限”,您应该能够直接移动文件,甚至无需创建装载。
在 Databricks notebook 中,代码应该是这样的 -
%fs mv /mnt/folder1 /mnt/folder2
我正在尝试将名称符合特定条件的文件从一个 Azure 存储帐户(全部在数据湖存储中)复制到另一个。 我目前正在尝试使用 PySpark 来执行此操作。我列出了我想查看的文件夹,然后为“来自”数据湖设置 spark 并使用 dbutils 获取相关文件夹中的文件:
spark.conf.set("fs.azure.account.key."+dev_storage_account_name+".dfs.core.windows.net",dev_storage_account_access_key)
for folder in raw_folders:
list_of_files = dbutils.fs.ls("abfss://mycontainer@mydatalake.dfs.core.windows.net/" + folder)
现在我可以检查文件名是否符合要复制的条件,但我如何才能真正将所需文件列表移动到“目标”数据湖中的文件夹?
您需要安装这两个容器,并使用如下方式跨文件系统移动文件:
内部循环,对于每次迭代,将文件名字段替换为数组中的每个项目list_of_files
dbutils.fs.mv('abfss://<container-name>@<storage-account-name>.dfs.core.windows.net/<directory-name>/demo/test.csv', 'abfss://<container-name>@<storage-account-name>.dfs.core.windows.net/<directory-name>/destination/renamedtest.csv')
还有....
如果容器不是 public,(/ 如果它是根文件夹)则使用 dbfs cli 在之前创建的挂载点之间移动 files/folders。
dbfs mv /mnt/folder1 /mnt/folder2
如果容器的访问级别是“容器和 blob 的匿名读取访问权限”,您应该能够直接移动文件,甚至无需创建装载。
在 Databricks notebook 中,代码应该是这样的 -
%fs mv /mnt/folder1 /mnt/folder2