Я попытался написать пример кода для чтения данных из файла csv в Azure Data Lake на кадр данных в pandas.
Вот мой пример кода, как показано ниже.
from azure.datalake.store import core, lib, multithread
import pandas as pd
tenant_id = '<your Azure AD tenant id>'
username = '<your username in AAD>'
password = '<your password>'
store_name = '<your ADL name>'
token = lib.auth(tenant_id, username, password)
# Or you can register an app to get client_id and client_secret to get token
# If you want to apply this code in your application, I recommended to do the authentication by client
# client_id = '<client id of your app registered in Azure AD, like xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx'
# client_secret = '<your client secret>'
# token = lib.auth(tenant_id, client_id=client_id, client_secret=client_secret)
adl = core.AzureDLFileSystem(token, store_name=store_name)
f = adl.open('<your csv file path, such as data/test.csv in my ADL>')
df = pd.read_csv(f)
Примечание. Если вы использовали client_id
& client_secret
для аутентификации, вы должны добавить необходимые права доступа для приложения с ролью Reader
как минимум в Azure AD, как показано на рисунках ниже.Для получения дополнительной информации о доступе к безопасности см. Официальный документ Security in Azure Data Lake Storage Gen1
.Между тем, о том, как зарегистрировать приложение в Azure AD, вы можете обратиться к моему ответу для другого потока SO Как получить AzureRateCard с Java? .
Любая проблема, пожалуйста, не стесняйтесь, дайте мне знать.