Puedes explorar de forma interactiva los DataFrames de PySpark en notebooks de Jupyter, incluido
Google Cloud Data Agent Kit (DAK), con el
paquete de Python google-colabsqlviz con
Managed Service para Apache Spark. Basado en anywidget y con la tecnología del motor de gráficos de Data Studio, google-colabsqlviz renderiza una visualización interactiva dentro del resultado de la celda del notebook sin código de trazado.
Cuando pasas un DataFrame a google-colabsqlviz, puedes cambiar entre las vistas de gráfico
y de tabla de datos, configurar dimensiones y métricas, aplicar agregaciones, ordenar
o filtrar datos de forma interactiva, y exportar datos de gráficos filtrados o agregados a un
DataFrame nuevo:
- Compatibilidad con DataFrames de varios motores: Visualiza objetos
pyspark.sql.DataFrame(incluidos los DataFrames de Spark Connect),bigframes.pandas.DataFrameypandas.DataFramecon una API. - Ejecución distribuida y en el kernel: Aunque el widget carga la IU de gráficos de Data Studio desde la CDN de Google, tus datos subyacentes no se envían a Data Studio. Todas las agregaciones y los filtros se ejecutan en tu kernel de Python o en tu sesión de Managed Service para Apache Spark, y los gráficos se renderizan de forma local en tu cliente de notebook.
- Cero conflictos de entorno: Los motores distribuidos opcionales, como
pysparkybigframes, se detectan en el entorno de ejecución y no se actualizan ni reemplazan cuando instalasgoogle-colabsqlviz.
Antes de comenzar
La renderización de DataFrames de PySpark en Spark Connect con
google-colabsqlviz es compatible con las sesiones interactivas de Managed Service para Apache Spark con la
versión del entorno de ejecución sin servidores 3.0 o posterior.
Sigue estas instrucciones para crear un notebook en Visual Studio Code (VS Code) con Data Agent Kit o usa otro entorno de notebook de Jupyter compatible, como JupyterLab:
- Establece y configura el Kit de agentes de datos (DAK):
- Crea un notebook:
- En la barra de actividades de VS Code, haz clic en Data Agent Kit, expande Apache Spark y selecciona + Nuevo notebook de Spark.
- En Seleccionar tipo de kernel, haz clic en Kernel local.
- Para seleccionar una plantilla de entorno de ejecución sin servidores, haz clic en el nombre de una plantilla de entorno de ejecución de la lista.
- En la barra de herramientas del notebook, haz clic en Seleccionar kernel, haz clic en Entornos de Python… y, luego, elige tu entorno de Python local.
Para instalar los paquetes de Python Spark Connect y
google-colabsqlviznecesarios en tu entorno local, ejecuta el siguiente comando en una celda del notebook o en una terminal local:Celda del notebook
%pip install -U 'google-cloud-spark-connect[interactive,client]'Terminal local
pip install -U 'google-cloud-spark-connect[interactive,client]'
Carga y visualiza un conjunto de datos
Después de iniciar un ManagedSparkSession y cargar un conjunto de datos en un
pyspark.sql.DataFrame, pasa el DataFrame a la función explore_dataframe
para renderizar la visualización interactiva. En el siguiente ejemplo, se establece una conexión con una
sesión sin servidores y se carga el conjunto de datos de Palmer Penguins
(`lakehouse-public-data`.ml_datasets.penguins) desde los
conjuntos de datos públicos de Lakehouse:
# 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)
Reemplaza lo siguiente:
PROJECT_ID: Es el ID del proyecto de Google Cloud .REGION: Es la región de Managed Service para Apache Spark de tu sesión (por ejemplo,us-central1).
Cuando ejecutas la celda, google-colabsqlviz inspecciona el esquema del DataFrame
y renderiza un widget de visualización interactivo en el área de salida de la celda con
una visualización predeterminada. Para el conjunto de datos penguins, renderiza un diagrama de dispersión
del promedio de flipper_length_mm y body_mass_g agrupados por species.
En la barra de herramientas del widget, haz clic en Datos para inspeccionar las filas del DataFrame subyacente en una tabla paginada. Selecciona Modo de división para ver el gráfico y la tabla de datos subyacente juntos. Haz clic en Gráfico para volver a la vista de gráfico.
Explora y personaliza gráficos
Puedes personalizar los tipos de gráficos, las dimensiones, las métricas, las agregaciones, el orden y los filtros en la interfaz del widget, y exportar los datos resultantes de vuelta a un DataFrame en tu notebook.
- Selecciona un tipo de gráfico: En el panel de configuración, haz clic en el menú de tipo de gráfico y selecciona un tipo de gráfico, como Gráfico de barras verticales. Para obtener una lista completa de los tipos de gráficos admitidos, consulta Tipos de gráficos en Data Studio.
- Configura dimensiones y métricas: En la pestaña Configuración, configura los campos para el DataFrame de
penguins:- Mantén la Dimensión establecida en
speciespara agrupar los registros por especie de pingüino. - En Métrica: Eje Y, establece la métrica en
body_mass_gcon la agregación establecida en AVG (Promedio) para calcular la masa corporal promedio en gramos de cada especie. - Haz clic en Agregar dimensión y selecciona
islandosexpara desglosar el gráfico en varias dimensiones, o cambia la agregación de métricas de AVG a MAX o SUM.
- Mantén la Dimensión establecida en
- Ordena y filtra la visualización:
- En la pestaña Configuración, en Ordenar, selecciona
body_mass_gcon la agregación AVG y selecciona Descendente para clasificar las especies por masa corporal promedio más alta. - Haz clic en Agregar filtro en la barra de herramientas del widget para filtrar los registros
por valores de campo (por ejemplo,
body_mass_gmayor o igual que4000) o haz clic en Crear DataFrame de salida en la parte inferior del widget para exportar los datos del gráfico agregados o los datos filtrados a una nueva celda de DataFrame. Cuando actualizas una propiedad o un filtro de gráfico,google-colabsqlvizvuelve a calcular la consulta en tu DataFrame y actualiza la visualización:
- En la pestaña Configuración, en Ordenar, selecciona
Para obtener más información sobre cómo configurar las propiedades de los gráficos, las agregaciones y los controles interactivos en la interfaz de gráficos incorporada, consulta la siguiente documentación:
- Tipos de gráficos en Data Studio
- Explora tus datos en Data Studio
- Usa celdas de visualización en Colab Enterprise
Configura la ejecución para DataFrames grandes
Cuando pasas un pyspark.sql.DataFrame a explore_dataframe(df),
google-colabsqlviz elige entre dos estrategias de ejecución
según el tamaño del DataFrame:
- Materialización en memoria (predeterminada para DataFrames más pequeños): Si el
DataFrame se estima en
256 MiBo menos y contiene, como máximo, 5,000,000 de filas,google-colabsqlvizrecopila el DataFrame en la memoria del kernel una vez. Los cambios posteriores en el tipo de gráfico, las agregaciones, el ordenamiento y el filtrado se ejecutan en la memoria con una latencia mínima y no activan trabajos de Spark nuevos. - Pushdown de Spark distribuido (la opción predeterminada para DataFrames más grandes): Si el
DataFrame supera el presupuesto de bytes o filas,
google-colabsqlvizmantiene el DataFrame diferido y traduce cada consulta, filtro, ordenamiento y solicitud de paginación del gráfico en una operación de PySpark ejecutada en tu sesión sin servidores de Managed Service para Apache Spark. Este enfoque puede agregar latencia adicional, pero te permite visualizar DataFrames mucho más grandes.
Puedes ajustar o inhabilitar el umbral de materialización en la memoria configurando la variable de entorno COLABSQLVIZ_PYSPARK_EAGER_MAX_BYTES antes de llamar a explore_dataframe(df):
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)
¿Qué sigue?
- Explora los tipos de gráficos en Data Studio.
- Obtén más información para transformar datos con Data Agent Kit.
- Obtén información para usar el cliente de Spark Connect sin servidores.
- Aprende a usar JupyterLab y VS Code para sesiones sin servidores.