Вызов данных ADLS в скрипте Python внутри кода VS - PullRequest
0 голосов
/ 19 марта 2019

Я уже установил расширение ADL в коде VS и сейчас пишу скрипт на Python, где мне нужно прочитать файл csv, представленный в хранилище озера данных Azure (ADLS Gen1). Для локального файла работает следующий код:

df = pd.read_csv(Path('C:\\Users\\Documents\\breslow.csv')) 
print (df)

Как я могу читать данные из ADLS? Даже после успешной установки и подключения (с моей учетной записью Azure) расширения ADL мне все равно нужно идти для создания области действия и секрета, и все?

Ответы [ 2 ]

0 голосов
/ 20 марта 2019

Я попытался написать пример кода для чтения данных из файла 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? .

enter image description here

enter image description here

Любая проблема, пожалуйста, не стесняйтесь, дайте мне знать.

0 голосов
/ 20 марта 2019

Вот пример кода для чтения CSV-файла из ADLS.

# -*- coding: utf-8 -*-
"""
Created on Wed Mar 20 11:37:19 2019

@author: Mohit Verma
"""

from azure.datalake.store import core, lib, multithread
token = lib.auth(tenant_id, username, password)
adl = core.AzureDLFileSystem(token, store_name=store_name)

# typical operations
adl.ls('')
adl.ls('tmp/', detail=True)
adl.ls('tmp/', detail=True, invalidate_cache=True)
adl.cat('littlefile')
adl.head('gdelt20150827.csv')

# file-like object
with adl.open('gdelt20150827.csv', blocksize=2**20) as f:
    print(f.readline())
    print(f.readline())
    print(f.readline())
    # could have passed f to any function requiring a file object:
    # pandas.read_csv(f)

with adl.open('anewfile', 'wb') as f:
    # data is written on flush/close, or when buffer is bigger than
    # blocksize
    f.write(b'important data')

adl.du('anewfile')

# recursively download the whole directory tree with 5 threads and
# 16MB chunks
multithread.ADLDownloader(adl, "", 'my_temp_dir', 5, 2**24)

Пожалуйста, попробуйте этот код и посмотрите, поможет ли он. Для других примеров, связанных с озером данных Azure, обратитесь к репозиторию github ниже.

https://github.com/Azure/azure-data-lake-store-python/tree/master/azure

Также, если вы хотите понять другой тип аутентификации в ADLS, пожалуйста, проверьте нижеприведенную базу кода.

https://github.com/Azure-Samples/data-lake-analytics-python-auth-options/blob/master/sample.py

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...