Czy można używać biblioteki Pandas na platformie Azure Databricks?
Środowisko Databricks Runtime zawiera narzędzia Pandas jako jeden ze standardowych pakietów języka Python, umożliwiając tworzenie i wykorzystywanie ramek Pandas DataFrames w notesach i zadaniach platformy Databricks.
W środowisku Databricks Runtime 10.4 LTS i nowszym interfejs API biblioteki Pandas na platformie Spark udostępnia znane polecenia biblioteki pandas oprócz ramek danych PySpark. Możesz także konwertować ramki DataFrames pomiędzy platformami Pandas i PySpark.
Platforma Apache Spark obejmuje zoptymalizowane pod kątem strzałki wykonywanie logiki języka Python w postaci interfejsów API funkcji pandas, które umożliwiają użytkownikom stosowanie przekształceń biblioteki pandas bezpośrednio do ramek danych PySpark. Platforma Apache Spark obsługuje również funkcje zdefiniowane przez użytkownika pandas, które używają podobnych optymalizacji strzałek dla dowolnych funkcji użytkownika zdefiniowanych w języku Python.
Where czy biblioteka pandas przechowuje dane w usłudze Azure Databricks?
Za pomocą biblioteki pandas można przechowywać dane w wielu różnych lokalizacjach w usłudze Azure Databricks. Możliwość przechowywania i ładowania danych z niektórych lokalizacji zależy od konfiguracji set przez administratorów obszaru roboczego.
Uwaga
Usługa Databricks zaleca przechowywanie danych produkcyjnych w magazynie obiektów w chmurze. Zobacz Nawiązywanie połączenia z usługą Azure Data Lake Storage Gen2 i usługą Blob Storage.
Jeśli jesteś w obszarze roboczym obsługującym Unity Catalog, możesz uzyskać dostęp do magazynu w chmurze z lokalizacjami zewnętrznymi. Zobacz Tworzenie lokalizacji zewnętrznej w celu połączenia magazynu w chmurze z usługą Azure Databricks.
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 ścieżce względnej lokalizacja pliku zależy od where wykonywania kodu. Jeśli używasz notesu usługi Databricks, plik danych jest zapisywany w magazynie woluminów dołączonym do sterownika klastra. Dane przechowywane w tej lokalizacji są trwale usuwane po zakończeniu działania klastra. Jeśli używasz folderów Usługi Git usługi Databricks z włączoną obsługą dowolnych plików, dane są zapisywane w katalogu głównym bieżącego projektu. W obu przypadkach możesz eksplorować pliki zapisane za pomocą %sh
polecenia magic, które umożliwia proste operacje powłoki bash względem bieżącego katalogu głównego, 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 ładować dane za pomocą biblioteki 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 ładowania danych za pomocą biblioteki pandas różni się w zależności od sposobu ładowania danych 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 delta tables. Możesz odczytać Delta do ramki danych Spark table, a następnie przekonwertować ją na ramkę danych w 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 Gen2 przy użyciu biblioteki pandas i w pełni kwalifikowanego adresu URL. Aby uzyskać dostęp do danych w chmurze, musisz podać identyfikator chmury credentials. 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
}
)