É possível analisar interativamente os DataFrames do PySpark em notebooks do Jupyter, incluindo o
Google Cloud Data Agent Kit (DAK), usando o
pacote Python google-colabsqlviz com o
Serviço Gerenciado para Apache Spark. Criado no anywidget e com tecnologia do
mecanismo de gráficos do Data Studio, o google-colabsqlviz renderiza uma
visualização interativa dentro da saída da célula do notebook sem
código de plotagem.
Ao transmitir um DataFrame para google-colabsqlviz, é possível alternar entre as visualizações de gráfico
e tabela de dados, configurar dimensões e métricas, aplicar agregações, classificar
ou filtrar dados de forma interativa e exportar dados de gráfico filtrados ou agregados para um
novo DataFrame:
- Suporte a DataFrames de vários mecanismos: visualize objetos
pyspark.sql.DataFrame(incluindo DataFrames do Spark Connect),bigframes.pandas.DataFrameepandas.DataFrameusando uma API. - Execução no kernel e distribuída: embora o widget carregue a UI de gráficos do Data Studio da CDN do Google, os dados subjacentes não são enviados ao Data Studio. Todas as agregações e filtros são executados no kernel do Python ou na sessão do Serviço Gerenciado para Apache Spark, e os gráficos são renderizados localmente no cliente do notebook.
- Zero conflitos de ambiente: mecanismos distribuídos opcionais, como
pysparkebigframes, são detectados no ambiente de execução e não são atualizados ou substituídos quando você instala ogoogle-colabsqlviz.
Antes de começar
A renderização de DataFrames do PySpark no Spark Connect com
google-colabsqlviz é compatível com as sessões interativas do Serviço Gerenciado para Apache Spark
com a versão do ambiente de execução sem servidor 3.0 ou mais recente.
Siga estas instruções para criar um notebook no Visual Studio Code (VS Code) com o Data Agent Kit ou use outro ambiente de notebook do Jupyter compatível, como o JupyterLab:
- Configure o Kit de Agente de Dados (DAK):
- Crie um notebook:
- Na barra de atividades do VS Code, clique em Data Agent Kit, expanda Apache Spark e selecione + Novo notebook do Spark.
- Em Selecionar tipo de kernel, clique em Kernel local.
- Para Selecionar um modelo de ambiente de execução sem servidor, clique no nome de um modelo de ambiente de execução listado.
- Na barra de ferramentas do notebook, clique em Selecionar kernel, em Ambientes Python... e escolha o ambiente Python local.
Para instalar os pacotes necessários do Spark Connect e do
google-colabsqlvizdo Python no ambiente local, execute o seguinte comando em uma célula do notebook ou no terminal local:Célula do notebook
%pip install -U 'google-cloud-spark-connect[interactive,client]'Terminal local
pip install -U 'google-cloud-spark-connect[interactive,client]'
Carregar e visualizar um conjunto de dados
Depois de iniciar um ManagedSparkSession e carregar um conjunto de dados em um
pyspark.sql.DataFrame, transmita o DataFrame para a função explore_dataframe
para renderizar a visualização interativa. O exemplo a seguir se conecta a uma
sessão sem servidor e carrega o conjunto de dados Palmer Penguins
(`lakehouse-public-data`.ml_datasets.penguins) dos
conjuntos de dados públicos do 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)
Substitua:
PROJECT_ID: o ID do projeto Google Cloud .REGION: a região do Serviço Gerenciado para Apache Spark da sua sessão (por exemplo,us-central1).
Quando você executa a célula, o google-colabsqlviz inspeciona o esquema do DataFrame
e renderiza um widget de visualização interativo na área de saída da célula com
uma visualização padrão. Para o conjunto de dados penguins, ele renderiza um gráfico de dispersão
da média de flipper_length_mm e body_mass_g agrupados por species.
Na barra de ferramentas do widget, clique em Dados para inspecionar as linhas do DataFrame subjacente em uma tabela paginada. Selecione Modo de divisão para ver o gráfico e a tabela de dados juntos. Clique em Gráfico para voltar à visualização de gráfico.
Analisar e personalizar gráficos
É possível personalizar tipos de gráficos, dimensões, métricas, agregações, classificação e filtros na interface do widget e exportar os dados resultantes de volta para um DataFrame no notebook.
- Selecione um tipo de gráfico: no painel de configurações, clique no menu de tipo de gráfico e selecione uma opção, como Gráfico de barras verticais. Para uma lista completa dos tipos de gráficos compatíveis, consulte Tipos de gráficos no Data Studio.
- Configurar dimensões e métricas: na guia Configuração, configure os campos do DataFrame
penguins:- Mantenha a Dimensão definida como
speciespara agrupar os registros por espécie de pinguim. - Em Métrica - Eixo Y, defina a métrica como
body_mass_gcom a agregação definida como AVG (Média) para calcular a massa corporal média em gramas de cada espécie. - Clique em Adicionar dimensão e selecione
islandousexpara detalhar o gráfico em várias dimensões ou mude a agregação de métricas de AVG para MAX ou SUM.
- Mantenha a Dimensão definida como
- Classificar e filtrar a visualização:
- Na guia Configuração, em Classificar, selecione
body_mass_gcom a agregação AVG e selecione Decrescente para classificar as espécies pela maior massa corporal média. - Clique em Adicionar filtro na barra de ferramentas do widget para filtrar registros
por valores de campo (por exemplo,
body_mass_gmaior ou igual a4000) ou clique em Criar DataFrame de saída na parte de baixo do widget para exportar os dados agregados do gráfico ou os dados filtrados para uma nova célula do DataFrame. Quando você atualiza uma propriedade ou um filtro de gráfico, ogoogle-colabsqlvizrecalcula a consulta no DataFrame e atualiza a visualização:
- Na guia Configuração, em Classificar, selecione
Para mais informações sobre como configurar propriedades de gráficos, agregações e controles interativos na interface de gráficos incorporados, consulte a seguinte documentação:
- Tipos de gráficos no Data Studio
- Explorar dados no Data Studio
- Usar células de visualização no Colab Enterprise
Configurar a execução para DataFrames grandes
Quando você transmite um pyspark.sql.DataFrame para explore_dataframe(df),
o google-colabsqlviz escolhe entre duas estratégias de execução
com base no tamanho do DataFrame:
- Materialização na memória (padrão para DataFrames menores): se o
DataFrame for estimado em
256 MiBou menos e tiver no máximo 5.000.000 linhas, ogoogle-colabsqlvizvai coletar o DataFrame na memória do kernel uma vez. As mudanças subsequentes no tipo de gráfico, as agregações, a classificação e a filtragem são executadas na memória com latência mínima e não acionam novos jobs do Spark. - Pushdown distribuído do Spark (o padrão para DataFrames maiores): se o
DataFrame exceder o orçamento de bytes ou linhas, o
google-colabsqlvizvai manter o DataFrame lento e traduzir cada consulta de gráfico, filtro, classificação e solicitação de paginação em uma operação do PySpark executada na sua sessão sem servidor do Serviço Gerenciado para Apache Spark. Essa abordagem pode adicionar latência, mas permite visualizar DataFrames muito maiores.
É possível ajustar ou desativar o limite de materialização na memória definindo a variável de ambiente COLABSQLVIZ_PYSPARK_EAGER_MAX_BYTES antes de chamar 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)
A seguir
- Conheça os tipos de gráficos no Data Studio.
- Saiba como transformar dados com o Data Agent Kit.
- Saiba como usar o cliente sem servidor do Spark Connect.
- Saiba como usar o JupyterLab e o VS Code para sessões sem servidor.