Kurz: Použití Pandas ke čtení a zápisu dat Azure Data Lake Storage Gen2 v bezserverovém fondu Apache Sparku ve službě Synapse Analytics
Zjistěte, jak pomocí Pandas číst a zapisovat data do Azure Data Lake Storage Gen2 (ADLS) pomocí bezserverového fondu Apache Spark ve službě Azure Synapse Analytics. Příklady v tomto kurzu ukazují, jak číst data csv pomocí Pandas v Synapse a excelových a parquetových souborů.
V tomto kurzu se naučíte:
- Čtení a zápis dat ADLS Gen2 pomocí Pandas v relaci Sparku
Pokud ještě nemáte předplatné Azure, vytvořte si napřed bezplatný účet.
Požadavky
Pracovní prostor Azure Synapse Analytics s účtem úložiště Azure Data Lake Storage Gen2 nakonfigurovaným jako výchozí úložiště (nebo primární úložiště). Musíte být přispěvatelem dat objektů blob úložiště systému souborů Data Lake Storage Gen2, se kterým pracujete.
Bezserverový fond Apache Sparku v pracovním prostoru Azure Synapse Analytics Podrobnosti najdete v tématu Vytvoření fondu Sparku v Azure Synapse.
Nakonfigurujte sekundární účet Azure Data Lake Storage Gen2 (který není výchozí pro pracovní prostor Synapse). Musíte být přispěvatelem dat objektů blob úložiště systému souborů Data Lake Storage Gen2, se kterým pracujete.
Vytváření propojených služeb – Ve službě Azure Synapse Analytics definuje propojená služba informace o připojení ke službě. V tomto kurzu přidáte propojenou službu Azure Synapse Analytics a Azure Data Lake Storage Gen2.
- Otevřete Azure Synapse Studio a vyberte kartu Spravovat .
- V části Externí připojení vyberte Propojené služby.
- Pokud chcete přidat propojenou službu, vyberte Nový.
- V seznamu vyberte dlaždici Azure Data Lake Storage Gen2 a vyberte Pokračovat.
- Zadejte svoje ověřovací přihlašovací údaje. Klíč účtu, instanční objekt (SP), přihlašovací údaje a identita spravované služby (MSI) jsou aktuálně podporované typy ověřování. Než zvolíte ověřování, ujistěte se, že je přispěvatel dat objektů blob služby Storage přiřazený k úložišti sp a MSI. Otestujte připojení a ověřte správnost přihlašovacích údajů. Vyberte Vytvořit.
Důležité
- Pokud výše vytvořená propojená služba pro Azure Data Lake Storage Gen2 používá spravovaný privátní koncový bod (s identifikátorem URI dfs), potřebujeme vytvořit další sekundární spravovaný privátní koncový bod pomocí možnosti Azure Blob Storage (s identifikátorem URI objektu blob), aby se interní kód fsspec/adlfs mohl připojit pomocí rozhraní BlobServiceClient.
- V případě, že sekundární spravovaný privátní koncový bod není správně nakonfigurovaný, zobrazí se chybová zpráva typu ServiceRequestError: Nejde se připojit k hostiteli [storageaccountname].blob.core.windows.net:443 ssl:True [Název nebo služba není známá]
Poznámka:
- Funkce Pandas je podporovaná v bezserverovém fondu Apache Spark v Pythonu 3.8 a Spark3 ve službě Azure Synapse Analytics.
- Dostupná podpora pro následující verze: pandas 1.2.3, fsspec 2021.10.0, adlfs 0.7.7
- Možnosti podpory identifikátoru URI služby Azure Data Lake Storage Gen2 (abfs[s]://file_system_name@account_name.dfs.core.windows.net/file_path) a krátké adresy URL FSSPEC (abfs[s]://container_name/file_path).
Přihlaste se k portálu Azure Portal.
Přihlaste se k portálu Azure.
Čtení a zápis dat do výchozího účtu úložiště ADLS pracovního prostoru Synapse
Pandas může číst a zapisovat data ADLS zadáním cesty k souboru přímo.
Spusťte následující kód.
Poznámka:
Před spuštěním souboru aktualizujte adresu URL souboru v tomto skriptu.
#Read data file from URI of default Azure Data Lake Storage Gen2
import pandas
#read csv file
df = pandas.read_csv('abfs[s]://file_system_name@account_name.dfs.core.windows.net/file_path')
print(df)
#write csv file
data = pandas.DataFrame({'Name':['A', 'B', 'C', 'D'], 'ID':[20, 21, 19, 18]})
data.to_csv('abfs[s]://file_system_name@account_name.dfs.core.windows.net/file_path')
#Read data file from FSSPEC short URL of default Azure Data Lake Storage Gen2
import pandas
#read csv file
df = pandas.read_csv('abfs[s]://container_name/file_path')
print(df)
#write csv file
data = pandas.DataFrame({'Name':['A', 'B', 'C', 'D'], 'ID':[20, 21, 19, 18]})
data.to_csv('abfs[s]://container_name/file_path')
Čtení a zápis dat pomocí sekundárního účtu ADLS
Pandas může číst a zapisovat sekundární data účtu ADLS:
- pomocí propojené služby (s možnostmi ověřování – klíč účtu úložiště, instanční objekt, spravuje identitu služby a přihlašovací údaje).
- pomocí možností úložiště můžete přímo předat ID klienta a tajný klíč SAS, klíč účtu úložiště a připojovací řetězec.
Použití propojené služby
Spusťte následující kód.
Poznámka:
Před spuštěním souboru aktualizujte adresu URL souboru a název propojené služby v tomto skriptu.
#Read data file from URI of secondary Azure Data Lake Storage Gen2
import pandas
#read data file
df = pandas.read_csv('abfs[s]://file_system_name@account_name.dfs.core.windows.net/ file_path', storage_options = {'linked_service' : 'linked_service_name'})
print(df)
#write data file
data = pandas.DataFrame({'Name':['A', 'B', 'C', 'D'], 'ID':[20, 21, 19, 18]})
data.to_csv('abfs[s]://file_system_name@account_name.dfs.core.windows.net/file_path', storage_options = {'linked_service' : 'linked_service_name'})
#Read data file from FSSPEC short URL of default Azure Data Lake Storage Gen2
import pandas
#read data file
df = pandas.read_csv('abfs[s]://container_name/file_path', storage_options = {'linked_service' : 'linked_service_name'})
print(df)
#write data file
data = pandas.DataFrame({'Name':['A', 'B', 'C', 'D'], 'ID':[20, 21, 19, 18]})
data.to_csv('abfs[s]://container_name/file_path', storage_options = {'linked_service' : 'linked_service_name'})
Pomocí možností úložiště můžete přímo předat ID klienta a tajný klíč SAS, klíč účtu úložiště a připojovací řetězec.
Spusťte následující kód.
Poznámka:
Před spuštěním souboru aktualizujte adresu URL souboru a storage_options v tomto skriptu.
#Read data file from URI of secondary Azure Data Lake Storage Gen2
import pandas
#read data file
df = pandas.read_csv('abfs[s]://file_system_name@account_name.dfs.core.windows.net/ file_path', storage_options = {'account_key' : 'account_key_value'})
## or storage_options = {'sas_token' : 'sas_token_value'}
## or storage_options = {'connection_string' : 'connection_string_value'}
## or storage_options = {'tenant_id': 'tenant_id_value', 'client_id' : 'client_id_value', 'client_secret': 'client_secret_value'}
print(df)
#write data file
data = pandas.DataFrame({'Name':['A', 'B', 'C', 'D'], 'ID':[20, 21, 19, 18]})
data.to_csv('abfs[s]://file_system_name@account_name.dfs.core.windows.net/file_path', storage_options = {'account_key' : 'account_key_value'})
## or storage_options = {'sas_token' : 'sas_token_value'}
## or storage_options = {'connection_string' : 'connection_string_value'}
## or storage_options = {'tenant_id': 'tenant_id_value', 'client_id' : 'client_id_value', 'client_secret': 'client_secret_value'}
#Read data file from FSSPEC short URL of default Azure Data Lake Storage Gen2
import pandas
#read data file
df = pandas.read_csv('abfs[s]://container_name/file_path', storage_options = {'account_key' : 'account_key_value'})
## or storage_options = {'sas_token' : 'sas_token_value'}
## or storage_options = {'connection_string' : 'connection_string_value'}
## or storage_options = {'tenant_id': 'tenant_id_value', 'client_id' : 'client_id_value', 'client_secret': 'client_secret_value'}
print(df)
#write data file
data = pandas.DataFrame({'Name':['A', 'B', 'C', 'D'], 'ID':[20, 21, 19, 18]})
data.to_csv('abfs[s]://container_name/file_path', storage_options = {'account_key' : 'account_key_value'})
## or storage_options = {'sas_token' : 'sas_token_value'}
## or storage_options = {'connection_string' : 'connection_string_value'}
## or storage_options = {'tenant_id': 'tenant_id_value', 'client_id' : 'client_id_value', 'client_secret': 'client_secret_value'}
Příklad čtení/zápisu souboru parquet
Spusťte následující kód.
Poznámka:
Před spuštěním souboru aktualizujte adresu URL souboru v tomto skriptu.
import pandas
#read parquet file
df = pandas.read_parquet('abfs[s]://file_system_name@account_name.dfs.core.windows.net/ parquet_file_path')
print(df)
#write parquet file
df.to_parquet('abfs[s]://file_system_name@account_name.dfs.core.windows.net/ parquet_file_path')
Příklad čtení a zápisu excelových souborů
Spusťte následující kód.
Poznámka:
Před spuštěním souboru aktualizujte adresu URL souboru v tomto skriptu.
import pandas
#read excel file
df = pandas.read_excel('abfs[s]://file_system_name@account_name.dfs.core.windows.net/ excel_file_path')
print(df)
#write excel file
df.to_excel('abfs[s]://file_system_name@account_name.dfs.core.windows.net/excel_file_path')
Další kroky
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro