Udostępnij przez


Czy można używać biblioteki Pandas na platformie Azure Databricks?

Środowisko uruchomieniowe Databricks Runtime zawiera pandas jako jeden ze standardowych pakietów języka Python, umożliwiając tworzenie i wykorzystywanie ramek pandas DataFrame w notesach i zadaniach platformy Databricks.

W środowisku Databricks Runtime 10.4 LTS i nowszym, interfejs API Pandas w środowisku Spark udostępnia znane polecenia pandas w ramach ramek danych PySpark. Możesz także konwertować DataFrame między pandas a PySpark.

Platforma Apache Spark obejmuje zoptymalizowaną za pomocą Arrow realizację logiki Pythona w postaci interfejsów API funkcji pandas, które umożliwiają użytkownikom stosowanie przekształceń pandas bezpośrednio do ramek danych PySpark. Platforma Apache Spark obsługuje również pandas UDFs (funkcje zdefiniowane przez użytkownika), które używają podobnych optymalizacji Arrow dla dowolnych funkcji użytkownika zdefiniowanych w języku Python.

Gdzie pandas przechowuje dane w usłudze Azure Databricks?

Korzystając z biblioteki pandas, można przechowywać dane w wielu różnych lokalizacjach na Azure Databricks. Możliwość przechowywania i ładowania danych z niektórych lokalizacji zależy od konfiguracji ustawionych przez administratorów obszaru roboczego.

Uwaga

Databricks zaleca przechowywanie danych produkcyjnych na chmurowym magazynie obiektowym. Zobacz Jak połączyć się z Azure Data Lake Storage i Blob Storage.

Jeśli jesteś w obszarze roboczym z włączoną obsługą Unity Catalog, możesz uzyskać dostęp do magazynu w chmurze z lokalizacjami zewnętrznymi. Zobacz Omówienie lokalizacji zewnętrznych.

W przypadku szybkiej eksploracji i danych bez poufnych informacji można bezpiecznie zapisywać dane przy użyciu ścieżek względnych lub systemu plików DBFS, jak w następujących przykładach:

import pandas as pd

df = pd.DataFrame([["a", 1], ["b", 2], ["c", 3]])

df.to_csv("./relative_path_test.csv")
df.to_csv("/dbfs/dbfs_test.csv")

Pliki zapisywane w systemie plików DBFS można eksplorować za pomocą %fs polecenia magic, jak w poniższym przykładzie. Pamiętaj, że /dbfs katalog jest ścieżką główną dla tych poleceń.

%fs ls

Podczas zapisywania w lokalizacji względnej, lokalizacja pliku zależy od miejsca wykonywania kodu. Jeśli używasz notebooku Databricks, plik danych jest zapisywany w magazynie woluminów podłączonym do sterownika klastra. Dane przechowywane w tej lokalizacji są trwale usuwane po zakończeniu działania klastra. Jeśli używasz folderów Git w Databricks z włączoną obsługą dowolnych plików, dane są zapisywane w głównym folderze bieżącego projektu. W obu przypadkach możesz eksplorować pliki zapisane za pomocą %sh polecenia magicznego, które umożliwia proste operacje bash względem aktualnego katalogu roboczego, jak w poniższym przykładzie:

%sh ls

Aby uzyskać więcej informacji na temat przechowywania różnych plików w usłudze Azure Databricks, zobacz Praca z plikami w usłudze Azure Databricks.

Jak załadować dane za pomocą Pandas w usłudze Azure Databricks?

Usługa Azure Databricks udostępnia wiele opcji ułatwiających przekazywanie danych do obszaru roboczego na potrzeby eksploracji. Preferowana metoda importowania danych za pomocą biblioteki pandas różni się w zależności od tego, jak importujesz dane do obszaru roboczego.

Jeśli masz małe pliki danych przechowywane obok notesów na komputerze lokalnym, możesz przekazać dane i kod wraz z folderami Git. Następnie możesz użyć ścieżek względnych, aby załadować pliki danych.

Usługa Azure Databricks udostępnia rozbudowane opcje oparte na interfejsie użytkownika na potrzeby ładowania danych. Większość z tych opcji przechowuje dane jako tabele delty. Możesz odczytać tabelę delty do ramki danych Spark, a następnie przekonwertować je na ramkę danych pandas.

Jeśli pliki danych zostały zapisane przy użyciu systemu DBFS lub ścieżek względnych, możesz użyć systemu DBFS lub ścieżek względnych, aby ponownie załadować te pliki danych. Poniższy kod zawiera przykład:

import pandas as pd

df = pd.read_csv("./relative_path_test.csv")
df = pd.read_csv("/dbfs/dbfs_test.csv")

Dane można ładować bezpośrednio z usługi Azure Data Lake Storage, używając biblioteki pandas oraz w pełni kwalifikowanego adresu URL. Aby uzyskać dostęp do danych w chmurze, należy podać poświadczenia w chmurze. Pakiety fsspec języka Python i adlfs muszą być również zainstalowane.

df = pd.read_csv(
  f"abfss://{container}@{storage_account}.dfs.core.windows.net/{file_path}",
  storage_options={
    "sas_token": sas_token_value
  }
)