Sdílet prostřednictvím


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.

    1. Otevřete Azure Synapse Studio a vyberte kartu Spravovat .
    2. V části Externí připojení vyberte Propojené služby.
    3. Pokud chcete přidat propojenou službu, vyberte Nový.
    4. V seznamu vyberte dlaždici Azure Data Lake Storage Gen2 a vyberte Pokračovat.
    5. 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.

    Screenshot of creating a linked service using an ADLS Gen2 storage access key.

Důležité

Screenshot of creating a managed private end-point to an ADLS Gen2 storage using blob endpoint.

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