Producto y tecnología

Snowpark Connect para Apache Spark™ en vista previa pública. Tu cliente Spark, ahora Powered by Snowflake.

En la versión 3.4, la comunidad de Apache Spark™ presentó Spark Connect. Su arquitectura cliente-servidor desvinculada separa el código del usuario del clúster de Spark donde se realiza el trabajo. Esta nueva arquitectura ahora permite ejecutar el código de Spark en un almacén de Snowflake, lo que elimina la necesidad de aprovisionar y mantener los clústeres de Spark.

Nos complace anunciar la vista previa pública de Snowpark Connect para Spark. Con Snowpark Connect, los clientes pueden aprovechar el potente motor vectorizado de Snowflake para su código de Spark, al tiempo que evitan la complejidad de mantener o ajustar diferentes entornos de Spark, como la gestión de dependencias, la compatibilidad de versiones y las actualizaciones. Ahora puedes ejecutar los modernos códigos de Spark DataFrame, Spark SQL y de función definida por el usuario (UDF) con Snowflake.

Al utilizar el entorno de ejecución de cómputo elástico de Snowflake con los almacenes de datos virtuales, Snowpark Connect para Spark ofrece lo mejor de ambos mundos: la potencia del motor de Snowflake y la familiaridad del código de Spark, todo ello a la vez que reduce los costes y acelera el desarrollo. Las organizaciones ya no necesitarán clústeres de Spark dedicados. Escribe o incorpora tu Spark SQL, DataFrame y UDF compatibles para ejecutarlos directamente en la plataforma de Snowflake. Snowflake gestiona todo el ajuste y escalado del rendimiento de manera automática, liberando así a los desarrolladores de la sobrecarga operativa que supone la gestión de Spark. Además, al incorporar el procesamiento de datos a Snowflake, estableces un marco de gobernanza único y sólido desde el inicio, lo que ayuda a garantizar la coherencia y la seguridad de los datos en todo el ciclo de vida sin un esfuerzo redundante.

snow park connect
Figura 1: Snowpark Connect, la última incorporación a Snowpark, amplía la experiencia del desarrollador al permitir que el código Spark se ejecute en Snowflake sin tener que migrar a Snowpark DataFrames. Snowpark continúa ofreciendo un conjunto de herramientas fáciles de usar para desarrolladores para nuevos flujos o para aprovechar integraciones específicas de la plataforma, como Snowflake SQL, AI o pandas.

De media, los clientes que utilizan Snowpark Client para crear flujos de datos en lenguajes Python, Java y Scala observan lo siguiente:

  • Un rendimiento 5,6 veces más rápido que el de Spark gestionado

  • Un 41 % de ahorro comparado con Spark gestionado

Con el lanzamiento de Snowpark Connect para Spark, puedes disfrutar de las mismas ventajas de la ejecución de Snowpark, sin necesidad de convertir tu código para usar Snowpark Client, o puedes familiarizarte con las API de Snowpark Client, si ya estás familiarizado con Spark.

snowpark connect
Figura 2: Conecta tu cliente Spark PySpark (desde VSCode, Jupyter Notebooks, Apache Airflow™, Snowflake Notebook y Spark Submit) para ejecutar trabajos Spark en la plataforma de Snowflake.

“VideoAmp tiene una larga historia a la hora de aprovechar tanto Spark como Snowflake. Hemos migrado una gran parte de nuestros workloads directamente a Snowpark, pero Snowpark Connect nos lleva un paso más allá para lograr la interoperabilidad del código. El hecho de que Snowflake se acerque a donde ya reside nuestro código no es más que una clara victoria y los primeros resultados que hemos visto son muy prometedores. La mejor parte es que no tuvimos que sacrificar tiempo de ingeniería crítico para migrar workloads con Snowpark Connect, simplemente funcionaron.”

John Adams
SVP of Architecture de VideoAmp

Basado en Spark Connect

El lanzamiento de Spark Connect, que desvincula el cliente y el servidor de Spark, se ha diseñado para facilitar el uso de Spark desde cualquier aplicación. Mientras que antes de Spark Connect, la aplicación y el controlador principal de Spark tenían que ejecutarse juntos, ahora pueden estar separados. Tu aplicación, ya sea una secuencia de comandos en Python o un cuaderno de datos, simplemente envía el plan lógico sin resolver a un clúster remoto de Spark. De esta forma, mejora la conectividad de Spark con diferentes herramientas y puede adaptarse mejor al desarrollo de aplicaciones modernas. 

Figure 3: Snowpark was originally built on the same premise of client-server separation as Spark Connect. In this architectural view, you can see how paired with Spark Connect, we’re able to transparently bring the ease of use, performance benefits, and reliability of the Snowflake platform to Spark workloads.
Figura 3: Snowpark se creó originalmente sobre la misma premisa de separación cliente-servidor que Spark Connect. En esta vista arquitectónica puedes ver cómo, combinado con Spark Connect, podemos brindar de manera transparente la facilidad de uso, las ventajas de rendimiento y la confiabilidad de la plataforma de Snowflake a workloads de Spark.

Snowpark se basaba originalmente en esta misma premisa de separación cliente-servidor. Ahora, junto con Spark Connect, podemos incorporar la facilidad de uso, las ventajas de rendimiento y la fiabilidad de la plataforma de Snowflake a los workloads de Spark sin esfuerzo. Snowpark Connect te permite ejecutar tu código de Spark en un almacén de Snowflake, que realiza todo el trabajo duro, lo que elimina la necesidad de aprovisionar y mantener los clústeres de Spark. Snowpark Connect admite actualmente las versiones de Spark 3.5.x, que aportan compatibilidad con las funciones y mejoras en dichas versiones.

 

Incorporar el código de Spark a los datos de Snowflake

Hasta ahora, muchas organizaciones que usaban Snowflake habían decidido utilizar Spark Connector para procesar los datos de Snowflake con código de Spark, pero esto requería el movimiento de los datos, lo que daba lugar a costes adicionales, latencia y complejidad en la gobernanza. Aunque la transición a Snowpark mejoraba el rendimiento, escalaba la gobernanza y ahorraba dinero, a menudo implicaba reescribir el código, lo que ralentizaba el desarrollo. Con Snowpark Connect, las organizaciones tienen una nueva oportunidad de revisitar estos workloads y realizar el procesamiento de datos directamente en Snowflake sin necesidad de convertir código, al tiempo que eliminan el movimiento de datos y la latencia.

 

Trabajar con un data lakehouse abierto 

Snowpark Connect para Spark funciona con tablas de Apache Iceberg™, incluidas las tablas Iceberg gestionadas externamente y Catalog-linked Databases. Con esto, ahora puedes aprovechar la potencia, el rendimiento, la facilidad de uso y la gobernanza de la plataforma de Snowflake sin tener que mover tus datos ni reescribir tu código de Spark. 

 

Cómo empezar

Antes de ejecutar el código, sigue las instrucciones de configuración. El fragmento de código que puedes ver a continuación es un ejemplo de Jupyter Notebooks (uno de nuestros clientes compatibles) y muestra cómo leer una tabla de Snowflake y ejecutar algunas operaciones de dataframe.

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)

Ahora puedes ejecutar código de Spark DataFrame, SQL y UDF en Snowflake a través de Snowflake Notebooks, Jupyter Notebooks, procedimientos almacenados de Snowflake, VSCode, Airflow o Snowpark Submit, lo que permite una integración fluida en diferentes almacenamientos en Snowflake, Iceberg (en Snowflake o gestionado externamente) y opciones de almacenamiento en la nube.

Consideraciones y limitaciones

Snowpark Connect funciona actualmente solo con versiones de Spark 3.5.x. Esto incluye la compatibilidad con las API de Spark DataFrame y Spark SQL. Sin embargo, hay que destacar algunas distinciones con respecto a la cobertura de API. Por ejemplo, las API de RDD, Spark ML, MLlib, Streaming y Delta no forman parte actualmente de las funciones compatibles con Snowpark Connect. Además, en el caso de las API compatibles, puede haber algunas diferencias semánticas que deben tenerse en cuenta tal como se especifica en la documentación de Snowpark Connect. Snowpark Connect solo está disponible actualmente para entornos Python y la compatibilidad con Java/Scala está en fase de desarrollo.

Atiende el evento Data Engineering Connect (a petición) para un segmento especial sobre Snowpark Connect para Spark. ¿Crees que podría ser una buena solución para tu organización? Habla con tu equipo de cuenta o ponte en contacto con nosotros. Anota la fecha en tu calendario e inscríbete en nuestro webinar del 10 de septiembre, donde revisaremos la función con más detalle. 

 


1Basado en casos de uso de producción de clientes y en ejercicios de pruebas de concepto (POC) que comparaban la velocidad y el coste de Snowpark con los servicios gestionados de Apache Spark entre noviembre de 2022 y mayo de 2025. Las conclusiones sintetizan los resultados de los clientes con datos reales y no representan los conjuntos de datos utilizados para las comparativas.

Ebook

Secretos de una migración con éxito de Apache Spark a Snowflake

Razones por las que las principales organizaciones abandonan las soluciones basadas en Apache Spark para obtener más rentabilidad, simplicidad y fiabilidad.
Compartir artículo

Subscribe to our blog newsletter

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

Where Data Does More

  • Prueba gratuita de 30 días
  • No se requiere tarjeta de crédito
  • Cancela en cualquier momento