Já disponível no Databricks Runtime 19 Beta
por Wenchen Fan, Andreas Neumann, Serge Rielau, Szehon Ho, Gengliang Wang, Linhong Liu, Hyukjin Kwon, Jerry Peng, DB Tsai, Xiao Li e Reynold Xin
O Apache Spark 4.2 traz mais elementos do moderno stack de dados e AI diretamente para o mecanismo. Com base no Spark 4.x, a versão adiciona métricas governadas, primitivas de vetor e top-K, um caminho Python mais focado em Arrow, captura de dados de alteração (CDC) de primeira classe e bases operacionais e de streaming mais robustas.
Isso torna o Spark mais útil em ambos os lados de uma aplicação de AI. Ele melhora a qualidade e a atualização dos dados fornecidos aos agentes de AI, além de facilitar a chamada do Spark por aplicações e agentes como um serviço de execução remota. A proposta de AI é concreta: semântica confiável, primitivas de recuperação nativas, dados de alteração atualizados e interfaces abertas para computação em escala Spark.
O Spark 4.2 pode ser compreendido por meio de quatro benefícios:
Juntas, essas mudanças ajudam as organizações a usar um único mecanismo aberto para preparar dados, definir o significado de negócios, recuperar o contexto relevante e manter as aplicações analíticas e de AI atualizadas.
O Spark 4.2 introduz visualizações de métricas, trazendo uma camada semântica nativa para o Spark SQL. As equipes podem definir métricas de negócios uma única vez e usá-las de forma consistente em painéis, relatórios, aplicações e ferramentas de AI.
Isso é importante porque muitas métricas cruciais não são aditivas de forma segura. Proporções, contagens distintas, retenção e medidas semelhantes podem produzir resultados incorretos quando cada consumidor reescreve a fórmula em uma granularidade diferente. As visualizações de métricas tornam dimensões e medidas objetos de primeira classe que o Spark compreende, permitindo que o mecanismo preserve a semântica de agregação pretendida.
Depois que uma visualização de métrica é definida, os usuários podem consultar as mesmas medidas governadas por diferentes dimensões:
Para aplicações de AI, isso é especialmente importante. Um agente não deve calcular a receita de forma diferente de um painel ou retornar uma resposta diferente quando um usuário altera o agrupamento solicitado. Uma visualização de métrica governada oferece ao SQL, BI e AI uma única fonte da verdade, com análise do Spark, resolução de catálogo e permissões aplicadas de forma consistente.
O Spark Connect separa o cliente do servidor Spark por meio de um protocolo baseado em gRPC e Arrow. Um cliente cria um plano lógico, o servidor o analisa e executa, e os resultados retornam como lotes do Arrow. O cliente não precisa de um runtime completo do Spark ou de uma JVM colocalizada.
Isso facilita a incorporação do Spark em notebooks, serviços, ferramentas de desenvolvedor e aplicações de AI. Um agente ou aplicação pode chamar o Spark a partir de seu próprio runtime, enquanto o Spark mantém a análise, otimização, execução e governança no servidor.
O Spark 4.2 continua reduzindo a lacuna de compatibilidade com o Spark Classic. As melhorias incluem melhor compatibilidade com a API RDD, entradas de DataFrame para spark.read.* e SparkSession.emptyDataFrame, depuração aprimorada, propagação de erros, relatórios de status e suporte ao modo de cluster YARN. Juntas, essas alterações tornam o PySpark e o Spark Connect mais rápidos, mais compatíveis e mais fáceis de operar em escala e remotamente.
O Python continua sendo uma das principais maneiras pelas quais os usuários criam cargas de trabalho de dados e AI com o Spark. No Spark 4.2, a execução de UDFs Python otimizadas para Arrow é habilitada por padrão, para que as UDFs existentes possam usar o caminho colunar mais rápido sem a necessidade de reescrever o código. O suporte ao Pandas 3 também facilita a atualização de ambientes Python juntamente com o Spark.
Para códigos que precisam de mais controle, as UDFs do Arrow mantêm os dados em matrizes PyArrow e evitam uma conversão desnecessária do Pandas. O Spark também expande a criação de perfil (profiling) e a depuração para a execução do Python, incluindo perfil de tempo e memória para Python Data Sources, diagnósticos aprimorados de workers e logs que podem ser consultados como dados.
O Spark 4.2 também melhora a interoperabilidade por meio da Arrow C Data Interface e do protocolo PyCapsule. Quando ambos os lados oferecem suporte, os DataFrames do Spark podem ser movidos para ferramentas nativas do Arrow, como Polars ou DuckDB, sem copiar ou serializar os dados subjacentes. Isso reduz a necessidade de código de integração entre o processamento em escala Spark e o ecossistema mais amplo de Python e AI.
As Python Data Sources reduzem ainda mais o atrito de integração. As equipes podem criar leitores e gravadores em lote ou streaming em Python, registrá-los uma única vez e usá-los por meio da interface padrão de fonte de dados do Spark. Na versão 4.2, a criação de perfil facilita o ajuste e a operação desses conectores, em vez de tratá-los como caixas pretas.
O Spark 4.2 adiciona novas primitivas SQL para busca por semelhança de vetores, classificação (ranking) e análise de séries temporais. A versão apresenta funções de distância e semelhança de vetores, normalização de vetores, agregação de vetores e NEAREST BY, uma junção de classificação top-K para correspondência baseada em distância. Essas primitivas permitem recuperação, recomendações, resolução de entidades e geração de candidatos em escala.
Os tipos integrados GEOMETRY e GEOGRAPHY e as funções ST_* permitem análises com reconhecimento de localização sem extensões espaciais externas. O Spark 4.2 também adiciona suporte a Parquet, WKT/WKB, preservação de SRID e conversão para Python.
Com o Spark 4.2, você pode invocar de forma inequívoca funções fornecidas pelo Spark qualificando-as com SYSTEM.BUILTIN. Seguindo o precedente das variáveis de sessão, você também pode qualificar totalmente as visualizações temporárias com SYSTEM.SESSION. Isso é útil para evitar ambiguidades com funções definidas pelo usuário ou relações persistidas e evitar injeções.
O Spark 4.2 adiciona suporte ao caminho de pesquisa SQL com SET PATH, facilitando a resolução de tabelas, funções e variáveis entre namespaces, e para bibliotecas de objetos simplesmente adicionando esquemas ao caminho.
O Spark persiste o caminho SQL em visualizações e funções SQL para uma resolução de nomes previsível.
A partir do Spark 4.2, os scripts SQL podem usar DECLARE, OPEN, FETCH e CLOSE em cursores. Isso permite maior controle sobre o processamento linha por linha de conjuntos de resultados, o que no passado exigia sair do SQL para usar DataFrames.
O Spark SQL também adiciona Tuple sketches, time_bucket para análise de séries temporais, suporte mais amplo ao tipo TIME em vários formatos de arquivo, QUALIFY para filtrar resultados de janelas (window), Top-K max_by e min_by, além de suporte a IGNORE NULLS e RESPECT NULLS para funções de agregação comuns.
Juntas, essas adições tornam o Spark SQL mais expressivo para aplicações analíticas modernas.
O Spark 4.2 introduz o suporte ao Auto CDC no Spark Declarative Pipelines (SDP), trazendo o processamento de SCD (Slow Changing Dimensions) Tipo 1 de primeira classe para o Spark. Antes do Auto CDC, consumir um feed de alterações e aplicá-lo a uma tabela de destino exigia uma lógica de mesclagem (merge) escrita manualmente que poderia facilmente se tornar complexa e propensa a erros, devido ao tratamento de exclusões e eventos de alteração fora de ordem. Com o Auto CDC, os usuários podem simplesmente configurar como os eventos de CDC devem atualizar uma tabela de destino e deixar o Spark gerenciar as complexidades.
O Auto CDC fornece uma API Python para aplicar alterações de CDC a uma tabela de destino SCD Tipo 1. Ele foi projetado para cargas de trabalho comuns de ingestão e replicação em que a versão mais recente de cada registro deve ser mantida de forma confiável, como perfis de clientes, catálogos de produtos, registros de contas e dados de referência operacional.
Por exemplo, um fluxo do Auto CDC agora pode ser expresso de forma declarativa:
Além do Auto CDC, o Spark Declarative Pipelines também recebe um importante fortalecimento da plataforma, incluindo um tratamento mais seguro no lado do servidor para análise eager e identificadores estruturados para fluxos. Juntas, essas mudanças tornam o desenvolvimento de pipelines declarativos mais confiável e dão ao Spark uma base para padrões de engenharia de dados de nível mais alto.
O Real-Time Mode (RTM) no Structured Streaming permite que consultas de streaming processem dados com latência de milissegundos de ponta a ponta. Isso ajudou o Spark a desbloquear classes totalmente novas de casos de uso e está se tornando a base para aplicações de dados operacionais, como detecção de fraudes, personalização, observabilidade e engenharia de recursos em tempo real.
No Spark 4.2, estendemos o RTM para o PySpark: agora você pode executar consultas de streaming sem estado (sem UDFs do Python) no Real-Time Mode. O Python é uma escolha popular entre cientistas e engenheiros de dados por sua facilidade de uso, e isso traz o processamento de baixa latência do RTM para um público muito mais amplo.
Olhando para a próxima versão do Spark 4.x, estamos trazendo suporte com estado (stateful) para o RTM — e o trabalho já está em andamento. O esforço é acompanhado em SPARK-54699 com três componentes principais:
Além do suporte com estado, também estamos trabalhando para habilitar UDFs do Python (SPARK-57237) no RTM.
Fique atento — e agradecemos seus comentários e contribuições!
O Spark 4.2 marca outro grande passo à frente para o Data Source V2. O DSv2 está se tornando a base padrão para conectores que expõem leituras, gravações, operações em nível de linha, evolução de esquema, dados de alteração (change data), métricas de operação e transações por meio do Spark.
O Spark 4.2 adiciona suporte de primeira classe para captura de dados de alteração (CDC) ao DSv2. Os conectores podem expor fluxos de alteração por meio de uma API padrão, e os usuários podem consultá-los com a nova cláusula SQL CHANGES, APIs de DataFrame e vinculações do PySpark. O Spark também lida com o pós-processamento comum no mecanismo — descartando remanescentes de copy-on-write, detectando atualizações e computando alterações líquidas por linha. A mesma consulta se comporta de maneira consistente em qualquer conector DSv2 que suporte CDC.
O Spark 4.2 aprimora ainda mais o suporte para operações DML em nível de linha nos conectores Data Source V2 (DSv2). O MERGE INTO recebe melhorias adicionais de desempenho, incluindo geração de código em todo o estágio (whole-stage code generation), além de novos aprimoramentos nos recursos de evolução de esquema introduzidos no Spark 4.1.
A evolução de esquema agora também é suportada para operações INSERT INTO, tanto para resolução de colunas baseada em nome quanto baseada em posição, reduzindo o atrito ao gravar em tabelas em evolução. Além disso, os resumos de operação agora estão disponíveis para UPDATE e DELETE, complementando os resumos de MERGE INTO adicionados no Spark 4.1. As métricas de MERGE INTO também foram expandidas e refinadas.
O Spark 4.2 introduz blocos de construção adicionais para conectores DSv2 de nível de produção e formatos de tabela de lakehouse. As principais adições incluem as bases de uma API de transação, filtragem aprimorada de estatísticas de partição, melhorias em junções particionadas por armazenamento (storage-partitioned joins) e um alinhamento mais próximo entre os comandos e comportamentos do DSv1 e do DSv2. Juntos, esses aprimoramentos tornam o DSv2 uma plataforma mais completa para implementar conectores de lakehouse, formatos de tabela transacionais e outros sistemas de dados em grande escala.
O Spark 4.2 inclui várias melhorias na plataforma que tornam o Spark mais fácil de operar, depurar, proteger e dimensionar. A Web UI do Spark recebe uma grande modernização com Bootstrap 5, modo escuro, melhor visualização do plano SQL, melhorias na linha do tempo de consulta e paginação no lado do servidor. O suporte ao Kubernetes melhora com o gerenciamento heterogêneo de executores, APIs estáveis de gerenciador de recursos e redução de sobrecarga do painel de controle (control-plane). O Spark 4.2 também adiciona suporte ao JDK 25, melhora a segurança na web, dimensiona o Spark History Server e atualiza dependências importantes, incluindo Scala, Parquet, ORC, Arrow, Netty e Hadoop.
O Spark 4.2 reflete a força da comunidade Apache Spark, com mais de 1.900 commits de mais de 260 colaboradores. Agradecemos a todos que contribuíram com código, revisões, testes, documentação e feedback para tornar este lançamento possível.

Baixe o Apache Spark 4.2 em spark.apache.org/downloads e veja as notas de lançamento completas do Apache Spark 4.2 para obter a lista completa de alterações. O Apache Spark 4.2 também estará disponível no Databricks Runtime 19 Beta.

(Esta publicação no blog foi traduzida utilizando ferramentas baseadas em inteligência artificial) Publicação original
Assine nosso blog e receba os posts mais recentes diretamente na sua caixa de entrada.