Können Sie Pandas in Azure Databricks verwenden?
Databricks Runtime umfasst Pandas als eines der Python-Standardpakete, mit dem Sie Pandas-DataFrames in Databricks-Notebooks und -Aufträgen erstellen und nutzen können.
In Databricks Runtime 10.4 LTS und höher stellt die Pandas-API in Spark neben PySpark-DataFrames auch bekannte Pandas-Befehle bereit. Sie können auch DataFrames zwischen Pandas und PySpark konvertieren.
Apache Spark umfasst die für Arrow optimierte Ausführung von Python-Logik in Form von Pandas-Funktions-APIs, mit denen Benutzer Pandas-Transformationen direkt auf PySpark-DataFrames anwenden können. Apache Spark unterstützt auch Pandas-UDFs, die ähnliche Arrow-Optimierungen für beliebige, in Python definierte Benutzerfunktionen verwenden.
Wo speichert Pandas Daten in Azure Databricks?
Sie können Pandas verwenden, um Daten an vielen verschiedenen Speicherorten in Azure Databricks zu speichern. Die Fähigkeit, Daten an einigen Speicherorten speichern und von dort laden zu können, hängt von den von Arbeitsbereichsadministratoren festgelegten Konfigurationen ab.
Hinweis
Databricks empfiehlt das Speichern von Produktionsdaten im Cloudobjektspeicher. Weitere Informationen finden Sie unter Herstellen einer Verbindung mit Azure Data Lake Storage Gen2 und Blob Storage.
Wenn Sie sich in einem Unity Catalog-fähigen Arbeitsbereich befinden, können Sie mit externen Standorten auf Cloudspeicher zugreifen. Weitere Informationen finden Sie unter Erstellen eines externen Speicherorts zum Verbinden des Cloudspeichers mit Azure Databricks.
Zum schnellen Durchsuchen und bei Daten ohne vertrauliche Informationen können Sie die Daten sicher mithilfe von relativen Pfaden oder im Databricks-Dateisystem (Databricks File System, DBFS) speichern, wie in den folgenden Beispielen gezeigt:
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")
Sie können Dateien, die in das DBFS geschrieben wurden, mit dem Magic-Befehl %fs
untersuchen, wie im folgenden Beispiel gezeigt. Beachten Sie, dass das Verzeichnis /dbfs
der Stammpfad für diese Befehle ist.
%fs ls
Wenn Sie in einem relativen Pfad speichern, hängt der Speicherort Ihrer Datei davon ab, wo Sie Ihren Code ausführen. Wenn Sie ein Databricks-Notebook verwenden, wird Ihre Datendatei in dem Volumespeicher gespeichert, der an den Treiber Ihres Clusters angefügt ist. An diesem Speicherort gespeicherte Daten werden dauerhaft gelöscht, wenn der Cluster beendet wird. Wenn Sie Databricks Git-Ordner mit aktivierter Unterstützung für beliebige Dateien verwenden, werden Ihre Daten im Stammverzeichnis Ihres aktuellen Projekts gespeichert. In beiden Fällen können Sie die geschriebenen Dateien mit dem Magic-Befehl %sh
untersuchen, der einfache Bash-Vorgänge relativ zu Ihrem aktuellen Stammverzeichnis erlaubt, wie im folgenden Beispiel gezeigt:
%sh ls
Weitere Informationen zu den Speichervorgängen in Azure Databricks für verschiedene Dateien finden Sie unter Arbeiten mit Dateien in Azure Databricks.
Wie laden Sie Daten mit Pandas in Azure Databricks?
Azure Databricks bietet eine Reihe von Optionen, um das Hochladen von Daten in den Arbeitsbereich zum Untersuchen zu vereinfachen. Die bevorzugte Methode zum Laden von Daten mit Pandas hängt davon ab, wie Sie Ihre Daten in den Arbeitsbereich laden.
Wenn Sie kleine Datendateien zusammen mit Notebooks auf Ihrem lokalen Computer gespeichert haben, können Sie Ihre Daten und Ihren Code zusammen mit Git-Ordnern hochladen. Sie können dann relative Pfade zum Laden von Datendateien verwenden.
Azure Databricks bietet umfangreiche benutzeroberflächenbasierte Optionen für das Laden von Daten. Bei den meisten dieser Optionen werden Ihre Daten als Delta-Tabellen gespeichert. Sie können eine Delta-Tabelle in einen Spark-DataFrame lesen und dann in einen Pandas-DataFrame konvertieren.
Wenn Sie Datendateien in DBFS oder mithilfe von relativen Pfaden gespeichert haben, können Sie DBFS oder relative Pfade verwenden, um diese Datendateien erneut zu laden. Der folgende Code gibt ein Beispiel:
import pandas as pd
df = pd.read_csv("./relative_path_test.csv")
df = pd.read_csv("/dbfs/dbfs_test.csv")
Sie können Daten direkt aus Azure Data Lake Storage Gen2 laden, indem Sie Pandas und eine vollqualifizierte URL verwenden. Sie müssen Cloudanmeldeinformationen angeben, um auf Clouddaten zugreifen zu können. Die Python-Pakete fsspec
und adlfs
müssen ebenfalls installiert werden.
df = pd.read_csv(
f"abfss://{container}@{storage_account}.dfs.core.windows.net/{file_path}",
storage_options={
"sas_token": sas_token_value
}
)