Sie können PySpark-DataFrames in Jupyter-Notebooks, einschließlich des Google Cloud Data Agent Kit (DAK), interaktiv mit dem Python-Paket google-colabsqlviz mit Managed Service for Apache Spark untersuchen. google-colabsqlviz basiert auf anywidget und wird von der Data Studio-Diagramm-Engine unterstützt. Es rendert eine interaktive Visualisierung in der Ausgabe der Notebook-Zelle, ohne dass Code gezeichnet werden muss.
Wenn Sie einen DataFrame an google-colabsqlviz übergeben, können Sie zwischen Diagramm- und Datentabellenansichten wechseln, Dimensionen und Messwerte konfigurieren, Aggregationen anwenden, Daten interaktiv sortieren oder filtern und gefilterte oder aggregierte Diagrammdaten in einen neuen DataFrame exportieren:
- Unterstützung für Multi-Engine-DataFrames: Visualisieren Sie
pyspark.sql.DataFrame- (einschließlich Spark Connect-DataFrames),bigframes.pandas.DataFrame- undpandas.DataFrame-Objekte mit einer einzigen API. - Kernelinterne und verteilte Ausführung: Das Widget lädt zwar die Data Studio-Diagramm-UI aus dem CDN von Google, aber Ihre zugrunde liegenden Daten werden nicht an Data Studio gesendet. Alle Aggregationen und Filter werden in Ihrem Python-Kernel oder Ihrer Managed Service for Apache Spark-Sitzung ausgeführt und Diagramme werden lokal in Ihrem Notebook-Client gerendert.
- Keine Umgebungskonflikte: Optionale verteilte Engines wie
pysparkundbigframeswerden zur Laufzeit erkannt und bei der Installation vongoogle-colabsqlviznicht aktualisiert oder überschrieben.
Hinweis
Das Rendern von PySpark-DataFrames über Spark Connect mit google-colabsqlviz wird in interaktiven Sitzungen von Managed Service for Apache Spark mit der serverlosen Laufzeitversion 3.0 oder höher unterstützt.
Folgen Sie dieser Anleitung, um ein Notebook in Visual Studio Code (VS Code) mit dem Data Agent Kit zu erstellen, oder verwenden Sie eine andere unterstützte Jupyter-Notebook-Umgebung wie JupyterLab:
- Richten Sie das Data Agent Kit (DAK) ein und konfigurieren Sie es:
- Notebook erstellen:
- Klicken Sie in der VS Code-Aktivitätsleiste auf Data Agent Kit, maximieren Sie Apache Spark und wählen Sie + Neues Spark-Notebook aus.
- Klicken Sie unter Kerneltyp auswählen auf Lokaler Kernel.
- Klicken Sie auf den Namen einer aufgeführten Laufzeitvorlage, um eine Vorlage für eine serverlose Laufzeit auszuwählen.
- Klicken Sie in der Notebook-Symbolleiste auf Kernel auswählen, dann auf Python-Umgebungen… und wählen Sie Ihre lokale Python-Umgebung aus.
Führen Sie den folgenden Befehl in einer Notebook-Zelle oder einem lokalen Terminal aus, um die erforderlichen Python-Pakete Spark Connect und
google-colabsqlvizin Ihrer lokalen Umgebung zu installieren:Notebookzelle
%pip install -U 'google-cloud-spark-connect[interactive,client]'Lokales Terminal
pip install -U 'google-cloud-spark-connect[interactive,client]'
Dataset laden und visualisieren
Nachdem Sie eine ManagedSparkSession gestartet und ein Dataset in einen pyspark.sql.DataFrame geladen haben, übergeben Sie den DataFrame an die Funktion explore_dataframe, um die interaktive Visualisierung zu rendern. Im folgenden Beispiel wird eine Verbindung zu einer serverlosen Sitzung hergestellt und das Palmer Penguins-Dataset (`lakehouse-public-data`.ml_datasets.penguins) aus den öffentlichen Lakehouse-Datasets geladen:
# Importing managed_spark_connect automatically imports explore_dataframe
from google.cloud.managed_spark_connect import ManagedSparkSession
spark = (
ManagedSparkSession.builder.projectId("PROJECT_ID")
.location("REGION")
.getOrCreate()
)
df = spark.read.table("`lakehouse-public-data`.ml_datasets.penguins")
explore_dataframe(df)
Ersetzen Sie Folgendes:
PROJECT_ID: Projekt-ID in Google Cloud .REGION: die Managed Service for Apache Spark-Region für Ihre Sitzung (z. B.us-central1).
Wenn Sie die Zelle ausführen, prüft google-colabsqlviz das DataFrame-Schema und rendert ein interaktives Visualisierungs-Widget im Zellenausgabebereich mit einer Standardvisualisierung. Für das Dataset penguins wird ein Streudiagramm mit dem durchschnittlichen flipper_length_mm und body_mass_g, gruppiert nach species, gerendert.
Klicken Sie in der Widget-Symbolleiste auf Daten, um die zugrunde liegenden DataFrame-Zeilen in einer paginierten Tabelle zu prüfen. Wählen Sie Geteilter Modus aus, um das Diagramm und die zugrunde liegende Datentabelle zusammen anzuzeigen. Klicken Sie auf Diagramm, um zur Diagrammansicht zurückzukehren.
Diagramme ansehen und anpassen
Sie können Diagrammtypen, Dimensionen, Messwerte, Aggregationen, Sortierungen und Filter in der Widget-Oberfläche anpassen und die resultierenden Daten wieder in einen DataFrame in Ihrem Notebook exportieren.
- Diagrammtyp auswählen: Klicken Sie im Bereich mit den Konfigurationseinstellungen auf das Menü für den Diagrammtyp und wählen Sie einen Diagrammtyp aus, z. B. Vertikales Balkendiagramm. Eine vollständige Liste der unterstützten Diagrammtypen finden Sie unter Diagrammtypen in Data Studio.
- Dimensionen und Messwerte konfigurieren: Konfigurieren Sie auf dem Tab Einrichtung die Felder für den DataFrame
penguins:- Behalten Sie für Dimension die Einstellung
speciesbei, um die Datensätze nach Pinguinart zu gruppieren. - Legen Sie unter Messwert – Y-Achse den Messwert auf
body_mass_gfest und wählen Sie als Aggregation AVG (Durchschnitt) aus, um das durchschnittliche Körpergewicht in Gramm für jede Art zu berechnen. - Klicken Sie auf Dimension hinzufügen und wählen Sie
islandodersexaus, um das Diagramm nach mehreren Dimensionen aufzuschlüsseln, oder ändern Sie die Messwertaggregation von AVG in MAX oder SUM.
- Behalten Sie für Dimension die Einstellung
- Visualisierung sortieren und filtern:
- Wählen Sie auf dem Tab Einrichtung unter Sortieren die Option
body_mass_gmit der Aggregation AVG und dann Absteigend aus, um die Arten nach der höchsten durchschnittlichen Körpermasse zu sortieren. - Klicken Sie in der Widget-Symbolleiste auf Filter hinzufügen, um Datensätze nach Feldwerten zu filtern (z. B.
body_mass_ggrößer oder gleich4000), oder klicken Sie unten im Widget auf Ausgabe-DataFrame erstellen, um die aggregierten Diagrammdaten oder gefilterten Daten in eine neue DataFrame-Zelle zu exportieren. Wenn Sie ein Diagrammattribut oder einen Filter aktualisieren, berechnetgoogle-colabsqlvizdie Abfrage für Ihren DataFrame neu und aktualisiert die Visualisierung:
- Wählen Sie auf dem Tab Einrichtung unter Sortieren die Option
Weitere Informationen zum Konfigurieren von Diagrammeigenschaften, Aggregationen und interaktiven Steuerelementen in der eingebetteten Diagrammoberfläche finden Sie in der folgenden Dokumentation:
- Diagrammtypen in Data Studio
- Daten in Data Studio analysieren
- Visualisierungszellen in Colab Enterprise verwenden
Ausführung für große DataFrames konfigurieren
Wenn Sie einen pyspark.sql.DataFrame an explore_dataframe(df) übergeben, wählt google-colabsqlviz basierend auf der Größe des DataFrames zwischen zwei Ausführungsstrategien:
- In-Memory-Materialisierung (Standard für kleinere DataFrames): Wenn der DataFrame auf
256 MiBoder weniger geschätzt wird und höchstens 5.000.000 Zeilen enthält, erfasstgoogle-colabsqlvizden DataFrame einmal im Kernel-Speicher. Nachfolgende Änderungen des Diagrammtyps, Aggregationen, Sortierungen und Filterungen werden im Arbeitsspeicher mit minimaler Latenz ausgeführt und lösen keine neuen Spark-Jobs aus. - Verteilter Spark-Pushdown (Standard für größere DataFrames): Wenn der DataFrame das Byte- oder Zeilenbudget überschreitet, behält
google-colabsqlvizden DataFrame als Lazy-Objekt bei und übersetzt jede Diagrammabfrage, jeden Filter, jede Sortierung und jede Paginierungsanfrage in einen PySpark-Vorgang, der in Ihrer serverlosen Managed Service for Apache Spark-Sitzung ausgeführt wird. Dieser Ansatz kann zu zusätzlicher Latenz führen, ermöglicht aber die Visualisierung viel größerer DataFrames.
Sie können den Schwellenwert für die In-Memory-Materialisierung anpassen oder deaktivieren, indem Sie die Umgebungsvariable COLABSQLVIZ_PYSPARK_EAGER_MAX_BYTES festlegen, bevor Sie explore_dataframe(df) aufrufen:
import os
# Importing managed_spark_connect automatically imports explore_dataframe
from google.cloud.managed_spark_connect import ManagedSparkSession
# Set to "0" to disable upfront collection and push all chart queries to Spark,
# or set a custom byte limit, such as str(64 * 1024 * 1024) for 64 MiB.
os.environ["COLABSQLVIZ_PYSPARK_EAGER_MAX_BYTES"] = "0"
explore_dataframe(df)
Nächste Schritte
- Diagrammtypen in Data Studio
- Daten mit dem Data Agent Kit transformieren
- Serverlosen Spark Connect-Client verwenden
- JupyterLab und VS Code für serverlose Sitzungen verwenden