使用 Python 在 Azure Data Lake Storage Gen1 上执行文件系统操作
本文介绍了如何使用 Python SDK 在 Azure Data Lake Storage Gen1 上执行文件系统操作。 若要了解如何使用 Python 对 Data Lake Storage Gen1 执行帐户管理操作,请参阅使用 Python 在 Data Lake Storage Gen1 上执行帐户管理操作。
先决条件
Python。 可以从此处下载 Python。 本文使用的是 Python 3.6.2。
Azure 订阅。 请参阅获取 Azure 免费试用版。
Azure Data Lake Storage Gen1 帐户。 请遵循通过 Azure 门户开始使用 Azure Data Lake Storage Gen1 中的说明进行操作。
安装模块
若要通过 Python 使用 Data Lake Storage Gen1,需要安装三个模块。
-
azure-mgmt-resource
模块,包括用于 Active Directory 的 Azure 模块,等等。 -
azure-mgmt-datalake-store
模块,包括 Azure Data Lake Storage Gen1 帐户管理操作。 有关此模块的详细信息,请参阅 azure-mgmt-datalake-store 模块参考。 -
azure-datalake-store
模块,包括 Azure Data Lake Storage Gen1 文件系统操作。 有关此模块的详细信息,请参阅 azure-datalake-store file-system 模块参考。
使用以下命令安装这些模块。
pip install azure-mgmt-resource
pip install azure-mgmt-datalake-store
pip install azure-datalake-store
创建新的 Python 应用程序
在所选的 IDE 中创建新的 Python 应用程序,例如,mysample.py。
添加以下代码行导入所需的模块
## Use this only for Azure AD service-to-service authentication from azure.common.credentials import ServicePrincipalCredentials ## Use this only for Azure AD end-user authentication from azure.common.credentials import UserPassCredentials ## Use this only for Azure AD multi-factor authentication from msrestazure.azure_active_directory import AADTokenCredentials ## Required for Azure Data Lake Storage Gen1 account management from azure.mgmt.datalake.store import DataLakeStoreAccountManagementClient from azure.mgmt.datalake.store.models import DataLakeStoreAccount ## Required for Azure Data Lake Storage Gen1 filesystem management from azure.datalake.store import core, lib, multithread ## Common Azure imports from azure.mgmt.resource.resources import ResourceManagementClient from azure.mgmt.resource.resources.models import ResourceGroup ## Use these as needed for your application import logging, getpass, pprint, uuid, time
将更改保存到 mysample.py。
身份验证
在本部分中,我们将讨论使用 Microsoft Entra ID 进行身份验证的不同方法。 可用选项包括:
- 有关应用程序的最终用户身份验证,请参阅使用 Python 通过 Data Lake Storage Gen1 进行最终用户身份验证。
- 有关应用程序的服务到服务身份验证,请参阅使用 Python 通过 Data Lake Storage Gen1 进行服务到服务身份验证。
创建文件系统客户端
以下代码段首先创建 Data Lake Storage Gen1 帐户客户端。 它使用客户端对象来创建一个 Data Lake Storage Gen1 帐户。 最后,此代码段创建一个文件系统客户端对象。
## Declare variables
subscriptionId = 'FILL-IN-HERE'
adlsAccountName = 'FILL-IN-HERE'
## Create a filesystem client object
adlsFileSystemClient = core.AzureDLFileSystem(adlCreds, store_name=adlsAccountName)
创建目录
## Create a directory
adlsFileSystemClient.mkdir('/mysampledirectory')
上传文件
## Upload a file
multithread.ADLUploader(adlsFileSystemClient, lpath='C:\\data\\mysamplefile.txt', rpath='/mysampledirectory/mysamplefile.txt', nthreads=64, overwrite=True, buffersize=4194304, blocksize=4194304)
下载文件
## Download a file
multithread.ADLDownloader(adlsFileSystemClient, lpath='C:\\data\\mysamplefile.txt.out', rpath='/mysampledirectory/mysamplefile.txt', nthreads=64, overwrite=True, buffersize=4194304, blocksize=4194304)
删除目录
## Delete a directory
adlsFileSystemClient.rm('/mysampledirectory', recursive=True)