Prodotto e tecnologia

Snowpark Connect per Apache Spark™ in public preview. Il tuo Spark Client, ora Powered by Snowflake.

Nella versione 3.4, la community Apache Spark™ ha introdotto Spark Connect. La sua architettura client-server disaccoppiata separa il codice dell'utente dal cluster Spark in cui viene eseguito il lavoro. Questa nuova architettura consente ora di eseguire il codice Spark in un warehouse Snowflake eliminando la necessità di eseguire il provisioning e la manutenzione dei cluster Spark.

Siamo lieti di annunciare la public preview di Snowpark Connect for Spark. Con Snowpark Connect, i clienti possono sfruttare il potente motore vettoriale Snowflake per il proprio codice Spark, evitando al contempo la complessità del mantenimento o del tuning di ambienti Spark separati, tra cui la gestione delle dipendenze, la compatibilità delle versioni e gli aggiornamenti. Ora puoi eseguire tutto il codice Spark DataFrame, Spark SQL e UDF con Snowflake.

Utilizzando il runtime di elaborazione elastico di Snowflake con i virtual warehouse, Snowpark Connect for Spark offre il meglio di due mondi: la potenza del motore Snowflake e la familiarità con il codice Spark, il tutto riducendo i costi e accelerando lo sviluppo. Le organizzazioni non avranno più bisogno di cluster Spark dedicati. Scrivi o integra Spark SQL, DataFrame e UDF compatibili per eseguirli direttamente sulla piattaforma Snowflake. Snowflake gestisce automaticamente tutto il tuning delle prestazioni e la scalabilità, liberando gli sviluppatori dal carico operativo di gestione di Spark. Inoltre, portando l’elaborazione dei dati in Snowflake, si stabilisce un framework di governance unico e robusto a monte, che aiuta a garantire coerenza e sicurezza dei dati per l’intero ciclo di vita senza sforzi ridondanti.

snow park connect
Figure 1: Snowpark Connect, the latest addition to Snowpark, expands the developer experience by enabling Spark code to run on Snowflake without having to migrate to Snowpark DataFrames. For new pipelines or to take advantage of platform-specific integrations such as Snowflake SQL, AI or pandas, Snowpark continues to offer a suite of easy-to-use tools for developers.

I clienti che utilizzano Snowpark Client per creare pipeline di dati nei linguaggi Python, Java e Scala in media ottengono:

  • Prestazioni 5,6 volte più veloci rispetto a Spark gestito

  • 41% di risparmio rispetto a Spark gestito

Con il lancio di Snowpark Connect for Spark, puoi ottenere gli stessi vantaggi dell’esecuzione di Snowpark senza bisogno di convertire il codice per utilizzare Snowpark Client o familiarizzare con le API Snowpark Client, se hai già familiarità con Spark.

snowpark connect
Figure 2: Connect your Spark PySpark client (from VSCode, Jupyter Notebooks, Apache Airflow™, Snowflake Notebook and Spark Submit) to run Spark jobs on the Snowflake platform.

“VideoAmp ha una lunga storia di utilizzo sia di Spark che di Snowflake. Abbiamo migrato direttamente gran parte dei nostri carichi di lavoro su Snowpark, ma Snowpark Connect ci avvicina all'interoperabilità del codice. Avere Snowflake dove risiede già il nostro codice è un chiaro vantaggio, e i primi risultati sono estremamente promettenti. Il meglio è che i nostri engineer non hanno dovuto sacrificare tempo critico per migrare i workload. Con Snowpark Connect abbiamo fatto tutto senza problemi.”

John Adams
SVP of Architecture at VideoAmp

Basato su Spark Connect

Il rilascio di Spark Connect, che disaccoppia il client e il server Spark, è stato progettato per facilitare l’utilizzo di Spark da qualsiasi applicazione. Mentre prima di Spark Connect l’applicazione e il driver Spark principale dovevano essere eseguiti insieme, ora possono essere separati. L’applicazione, che si tratti di uno script Python o di un data notebook, invia semplicemente il piano logico irrisolto a un cluster Spark remoto. Questo migliora la connettività Spark con diversi strumenti e l’integrazione nello sviluppo di app moderne. 

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.
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.

Snowpark è stato originariamente creato sulla stessa premessa della separazione client-server. Ora, in combinazione con Spark Connect, siamo in grado di portare facilmente la facilità d’uso, i vantaggi in termini di prestazioni e l’affidabilità della piattaforma Snowflake ai workload Spark. Snowpark Connect consente di eseguire il codice Spark in un warehouse Snowflake che svolge tutto il lavoro pesante eliminando la necessità di eseguire il provisioning e la manutenzione dei cluster Spark. Snowpark Connect attualmente supporta le versioni di Spark 3.5.x, consentendo la compatibilità con le funzionalità e i miglioramenti di tali versioni.

 

Portare il codice Spark dove si trovano i dati Snowflake

Finora, molte organizzazioni che utilizzano Snowflake hanno scelto di utilizzare Spark Connector per elaborare i dati Snowflake con codice Spark, ma questo ha introdotto lo spostamento dei dati, con costi aggiuntivi, latenza e complessità della governance. Anche se il passaggio a Snowpark ha migliorato le prestazioni, scalato la governance e risparmiato denaro, spesso significava riscrivere il codice, rallentando lo sviluppo. Con Snowpark Connect, le organizzazioni hanno una nuova opportunità di rivisitare questi workload ed eseguire l’elaborazione dei dati direttamente in Snowflake senza conversione del codice, eliminando al contempo lo spostamento e la latenza dei dati.

 

Lavorare con un data lakehouse aperto 

Snowpark Connect for Spark funziona con le Apache Iceberg™ Tables, compresi le Iceberg Tables gestite esternamente e i database collegati ai cataloghi. Ora puoi sfruttare la potenza, le prestazioni, la facilità d’uso e la governance della piattaforma Snowflake senza dover spostare i dati o riscrivere il codice Spark. 

 

Come iniziare

Prima di iniziare, segui le istruzioni di configurazione. Lo snippet di codice seguente è un esempio per Jupyter Notebook (uno dei client che supportiamo) e mostra come leggere una tabella Snowflake ed eseguire alcune operazioni sui 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)

Ora è possibile eseguire codice Spark DataFrame, SQL e UDF su Snowflake tramite Snowflake Notebooks, notebook Jupyter, stored procedure Snowflake, VSCode, Airflow o Snowpark Submit, per un’integrazione perfetta tra diversi storage in Snowflake, Iceberg (in Snowflake o gestito esternamente) e opzioni di cloud storage.

Considerazioni e limitazioni

Attualmente Snowpark Connect funziona solo con le versioni Spark 3.5.x. Questo include il supporto per le API Spark DataFrame e Spark SQL. Ci sono, tuttavia, alcune distinzioni da fare per quanto riguarda la copertura API. Ad esempio, le API RDD, Spark ML, MLlib, Streaming e Delta non sono attualmente incluse nelle funzionalità supportate da Snowpark Connect. Inoltre, per le API supportate, potrebbero esserci alcune differenze semantiche da considerare come specificato nella documentazione di Snowpark Connect. Snowpark Connect è attualmente disponibile solo per ambienti Python e il supporto Java/Scala è in fase di sviluppo.

Nell’evento Data Engineering Connect on demand c’è una sezione dedicata a Snowpark Connect for Spark. Pensi che questa possa essere una buona soluzione per la tua organizzazione? Parla con il tuo account team o contattaci. Registrati per il webinar del 10 settembre in cui esamineremo la funzionalità in modo più dettagliato. 

 


1 Dati basati su casi d’uso di produzione dei clienti ed esercizi di proof-of-concept che confrontano la velocità e il costo di Snowpark rispetto ai servizi Spark gestiti tra novembre 2022 e maggio 2025. Tutti i risultati riassumono i risultati effettivi ottenuti dai clienti con dati reali e non rappresentano data set creati ad hoc per i benchmark.

Ebook

I segreti del successo della migrazione da Apache Spark a Snowflake

Perché le organizzazioni abbandonano le soluzioni basate su Apache Spark preferendo la convenienza, la semplicità e l’affidabilità.
Condividi articolo

Subscribe to our blog newsletter

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

Where Data Does More

  • prova gratuita di 30 giorni
  • nessuna carta di credito
  • annulli quando vuoi