Produto e tecnologia

Lançamento do Snowpark Connect para Apache Spark™ em versão preliminar pública. Seu Spark Client, agora Powered by Snowflake.

Na versão 3.4, a comunidade Apache Spark™ lançou o Spark Connect. que traz uma arquitetura dissociada cliente-servidor, separando o código do usuário do cluster Spark onde o trabalho é feito. Agora, com essa nova arquitetura, é possível executar seu código Spark em um warehouse Snowflake, eliminando a necessidade de provisionar e manter clusters Spark.

Com satisfação anunciamos a versão preliminar pública do Snowpark Connect para Spark. Com o Snowpark Connect, os clientes podem aproveitar o mecanismo avançado de vetorização do Snowflake para seu código Spark e, ao mesmo tempo, evitar a complexidade de manter ou ajustar ambientes Spark separados, incluindo o gerenciamento de dependências, compatibilidade de versão e atualizações. Agora, você pode executar o mais moderno Spark DataFrame, Spark SQL e o código de função definida pelo usuário (UDF) com o Snowflake.

Com o runtime de processamento elástico do Snowflake com warehouses virtuais, o Snowpark Connect para Spark oferece o melhor dos dois mundos: a capacidade do mecanismo do Snowflake e a familiaridade com o código do Spark, ao mesmo tempo em que reduz os custos e agiliza o desenvolvimento. As organizações não precisarão mais de clusters dedicados do Spark. Grave ou integre seu Spark SQL, DataFrame e UDF compatíveis, executando-os diretamente na plataforma Snowflake. Automaticamente, o Snowflake lida com todos os ajustes e dimensionamentos de desempenho, liberando seus desenvolvedores da sobrecarga operacional de gerenciar o Spark. Além disso, integrando o processamento de dados ao Snowflake, você estabelece uma estrutura única e sólida de governança das etapas anteriores, o que ajuda a garantir a consistência e a segurança dos dados durante todo o ciclo de vida, sem esforço redundante.

snow park connect
Figura 1. Snowpark Connect, o mais novo recurso do Snowpark, amplia a experiência do desenvolvedor permitindo executar o código Spark no Snowflake sem precisar migrar para o Snowpark DataFrames. Para novos pipelines ou para aproveitar as vantagens de integrações específicas da plataforma, como Snowflake SQL, AI ou pandas, o Snowpark continua a oferecer um conjunto de ferramentas fáceis de usar para desenvolvedores.

Em média, os clientes que usam o Snowpark Client para criar pipelines de dados em linguagens Python, Java e Scala observaram:

  • Desempenho 5,6 vezes mais rápido do que em Spark gerenciado.

  • 41% de redução de custos em relação ao Spark gerenciado.

Com o lançamento do Snowpark Connect para Spark, você pode ter as mesmas vantagens da execução do Snowpark sem precisar converter seu código para usar o Snowpark Client ou conhecer as APIs de cliente do Snowpark, caso você já esteja familiarizado com o Spark.

snowpark connect
Figura 2. Conecte seu cliente Spark PySpark (do VSCode, Jupyter Notebooks, Apache Airflow™, Snowflake Notebook e Spark Submit) para realizar trabalhos do Spark na plataforma Snowflake.

"A VideoAmp tem uma longa história de uso de Spark e Snowflake. Migramos uma grande parte de nossas cargas de trabalho diretamente para o Snowpark. No entanto, o Snowpark Connect é um passo à frente na direção de obter a interoperabilidade de código. Poder contar com o Snowflake onde nosso código reside é uma grande vitória e os primeiros resultados que vimos são extremamente promissores. A melhor parte é que não precisamos comprometer muito tempo de engenharia para migrar as cargas de trabalho com o Snowpark Connect. Tudo simplesmente funcionou."

John Adams
SVP of Architecture at VideoAmp

Integrados ao Spark Connect

O lançamento do Spark Connect, que dissocia o cliente e o servidor Spark, foi desenvolvido para facilitar o uso do Spark a partir de qualquer aplicação. Enquanto antes do Spark Connect, sua aplicação e o driver principal do Spark precisavam ser executados juntos, agora eles podem ser separados. Sua aplicação, seja um script Python ou um notebook de dados, simplesmente envia o plano lógico não resolvido para um cluster Spark remoto. Isso melhora a conectividade do Spark com diferentes ferramentas e permite que ele se encaixe melhor no desenvolvimento de apps modernos. 

Figura 3. Originalmente, o Snowpark foi desenvolvido com base na mesma ideia de separação cliente-servidor que o Spark Connect. Nessa visualização da arquitetura, é possível ver como, aliado ao Spark Connect, conseguimos trazer de forma transparente a facilidade de uso, os benefícios de desempenho e a confiabilidade da plataforma Snowflake para as cargas de trabalho do Spark.
Figura 3. Originalmente, o Snowpark foi desenvolvido com base na mesma ideia de separação cliente-servidor que o Spark Connect. Nessa visualização da arquitetura, é possível ver como, aliado ao Spark Connect, conseguimos trazer de forma transparente a facilidade de uso, os benefícios de desempenho e a confiabilidade da plataforma Snowflake para as cargas de trabalho do Spark.

Originalmente, a criação do Snowpark já trazia como princípio essa separação de cliente-servidor. Agora, aliado ao Spark Connect, conseguimos trazer a facilidade de uso, os benefícios de desempenho e a confiabilidade da plataforma Snowflake para as cargas de trabalho Spark, sem esforço. Com o Snowpark Connect, é possível executar código Spark em um warehouse do Snowflake, que realiza todo o trabalho pesado, eliminando a necessidade de provisionar e manter clusters Spark. O Snowpark Connect oferece suporte às versões do Spark 3.5.x, permitindo compatibilidade com os recursos e melhorias dessas versões.

 

Adicionando código Spark aos dados do Snowflake

Até agora, muitas organizações que usam o Snowflake optaram por usar o Spark Connector para processar dados do Snowflake com código Spark, mas isso resultou em movimentação de dados, levando a custos adicionais, latência e governança complexa. Embora a migração para o Snowpark tenha melhorado o desempenho, dimensionado a governança e reduzido custos, muitas vezes isso ainda trazia a necessidade de criação de código, atrasando o desenvolvimento. Com o Snowpark Connect, as organizações terão uma nova oportunidade de rever essas cargas de trabalho e realizar o processamento de dados diretamente no Snowflake sem conversão de código, eliminando a latência e a movimentação de dados.

 

Trabalhando com um data lakehouse aberto 

O Snowpark Connect para Spark funciona com tabelas Apache Iceberg™, incluindo tabelas Iceberg gerenciadas externamente e bancos de dados vinculados a catálogos também. Com isso, você agora pode aproveitar a capacidade, o desempenho, a facilidade de uso e a governança da plataforma Snowflake sem precisar mover seus dados ou reescrever seu código Spark. 

 

Por onde começar

É bem simples começar, se os seus dados encontram-se no Snowflake ou acessíveis a ele. Você pode usar o ambiente cliente Spark Connect onde, atualmente, seu Spark DataFrame é executado e apontá-lo para o Snowflake, desta forma:

import pyspark
import os
from snowflake import snowpark_connect
from pyspark.sql import SparkSession
from pyspark.sql.functions import col
from pyspark.sql.functions import to_timestamp, current_timestamp
from pyspark.sql import SparkSession
from pyspark.sql import Row
from pyspark.sql import SparkSession

os.environ["SPARK_CONNECT_MODE_ENABLED"] = "1"
snowpark_connect.start_session()  # Start the local |spconnect| session

spark = snowpark_connect.get_session()



spark = snowpark_connect.get_session()


# -------------------------------------------
## Displaying Data from a table in Snowflake which is already available via share 
# -------------------------------------------

orders = spark.read.table("SNOWFLAKE_SAMPLE_DATA.TPCH_SF1.ORDERS")
orders.show(2)

customers = spark.read.table("SNOWFLAKE_SAMPLE_DATA.TPCH_SF1.CUSTOMER")
customers.show(2)

# --------------------------------------------------
##  Top 10 Most frequent buyers and their order count
# ---------------------------------------------------
frequent_buyers = orders.join(customers, orders.o_custkey == customers.c_custkey, "inner") \
.groupBy(customers.c_name) \
.count() \
.orderBy("count", ascending=False)

frequent_buyers.show(10)


# # -------------------------------------------------------------------------------------
# 1. Read from the Managed Iceberg Table that you have created in the account using the tutorial 
# -------------------------------------------------------------------------------------

iceberg_table = "iceberg_tutorial_db.PUBLIC.customer_iceberg"  # Full table name

df = spark.sql(f"SELECT * FROM {iceberg_table}")

# -------------------------------------------
## Display Data
# -------------------------------------------
df.show(5)

Agora é possível executar código UDF, SQL e Spark DataFrame Snowflake via Snowflake Notebooks, Jupyter notebooks, procedimentos armazenados no Snowflake, VSCode, Airflow ou Snowpark Submit. Isso possibilita a integração contínua entre diferentes opções de armazenamento no Snowflake, Iceberg (no Snowflake ou externamente gerenciado) e na nuvem.

Observações e limitações

Atualmente, o Snowpark Connect funciona apenas com as versões Spark 3.5.x. Isso inclui suporte para APIs Spark DataFrame e Spark SQL. No entanto, há algumas diferenças a observar em relação à cobertura de API. Por exemplo, RDD, Spark ML, MLlib, Streaming e as APIs Delta atualmente não fazem parte dos recursos compatíveis com o Snowpark Connect. Além disso, para as APIs compatíveis, pode haver algumas diferenças semânticas a serem consideradas conforme especificado na documentação do Snowpark Connect (em inglês). O Snowpark Connect atualmente só está disponível para ambientes Python, e o suporte a Java/Scala está sendo desenvolvido.

Assista ao evento Data Engineering Connect (sob demanda), para ver uma sessão especial sobre o Snowpark Connect para Spark. Essa pode ser uma boa solução para sua empresa? Converse com sua equipe de contas ou entre em contato com uma de nossas equipes. Anote a data na agenda e inscreva-se no webinar que acontecerá em 10 de setembro de 2025. Nele, analisaremos o recurso em mais detalhes. 

 


1Com base em casos de uso de produção de clientes e exercícios de prova de conceito comparando a velocidade e os custos do Snowpark em relação aos serviços Apache Spark gerenciados no período de novembro de 2022 a maio de 2025. Todas as conclusões resumem os resultados de clientes reais, com base em dados verídicos, não representando conjuntos de dados fabricados para benchmarks.

Ebook

Segredos para o sucesso da migração do Apache Spark para o Snowflake

Veja por que empresas líderes estão migrando de soluções Apache Spark para uma solução que oferece melhor custo, simplicidade e confiança.
Share Article

Subscribe to our blog newsletter

Get the best, coolest and latest delivered to your inbox each week

Onde os dados fazem mais

  • Avaliação gratuita de 30 dias
  • Sem precisar de cartão de crédito
  • Cancele a qualquer hora