Condividi tramite


SparkSession

Punto di ingresso per la programmazione di Spark con l'API Dataset e DataFrame. Una sessione SparkSession può essere usata per creare dataframe, registrare i dataframe come tabelle, eseguire SQL su tabelle, tabelle della cache e leggere file Parquet.

Sintassi

from pyspark.sql import SparkSession

spark = SparkSession.builder.getOrCreate()

Proprietà

Proprietà Descrizione
version Versione di Spark in cui è in esecuzione l'applicazione.
conf Interfaccia di configurazione di runtime per Spark.
catalog Interfaccia tramite cui l'utente può creare, eliminare, modificare o eseguire query su database, tabelle, funzioni e così via sottostanti.
udf Restituisce un UDFRegistration per la registrazione della funzione definita dall'utente.
udtf Restituisce un valore UDTFRegistration per la registrazione UDTF.
dataSource Restituisce un oggetto DataSourceRegistration per la registrazione dell'origine dati.
profile Restituisce un profilo per la profilatura delle prestazioni/della memoria.
sparkContext Restituisce l'oggetto SparkContext sottostante. Solo modalità classica.
read Restituisce un DataFrameReader che può essere utilizzato per leggere i dati come dataframe.
readStream Restituisce un DataStreamReader che può essere utilizzato per leggere i flussi di dati come dataframe di streaming.
streams Restituisce un oggetto StreamingQueryManager che consente di gestire tutte le query di streaming attive.
tvf Restituisce un oggetto TableValuedFunction per chiamare funzioni con valori di tabella .

Methods

metodo Descrizione
createDataFrame(data, schema, samplingRatio, verifySchema) Crea un dataframe da un set di dati RDD, un elenco, un dataframe pandas, un ndarray numpy o una tabella pyarrow.
sql(sqlQuery, args, **kwargs) Restituisce un dataframe che rappresenta il risultato della query specificata.
table(tableName) Restituisce la tabella specificata come dataframe.
range(start, end, step, numPartitions) Crea un dataframe con una singola colonna LongType denominata id, contenente elementi in un intervallo.
newSession() Restituisce una nuova sessione SparkSession con SQLConf, viste temporanee registrate e funzioni definite dall'utente, ma sparkContext e cache tabelle condivise. Solo modalità classica.
getActiveSession() Restituisce l'oggetto SparkSession attivo per il thread corrente.
active() Restituisce la sessione SparkSession attiva o predefinita per il thread corrente.
stop() Arresta l'oggetto SparkContext sottostante.
addArtifacts(*path, pyfile, archive, file) Aggiunge elementi alla sessione client.
interruptAll() Interrompe tutte le operazioni di questa sessione attualmente in esecuzione nel server.
interruptTag(tag) Interrompe tutte le operazioni di questa sessione con il tag specificato.
interruptOperation(op_id) Interrompe un'operazione di questa sessione con il valore operationId specificato.
addTag(tag) Aggiunge un tag da assegnare a tutte le operazioni avviate da questo thread in questa sessione.
removeTag(tag) Rimuove un tag aggiunto in precedenza per le operazioni avviate da questo thread.
getTags() Ottiene i tag attualmente impostati da assegnare a tutte le operazioni avviate da questo thread.
clearTags() Cancella i tag di operazione del thread corrente.

Costruttore

metodo Descrizione
config(key, value) Imposta un'opzione di configurazione. Le opzioni vengono propagate automaticamente alla configurazione di SparkConf e SparkSession.
master(master) Imposta l'URL master Spark a cui connettersi.
remote(url) Imposta l'URL remoto spark per la connessione tramite Spark Connect.
appName(name) Imposta un nome per l'applicazione, che verrà visualizzato nell'interfaccia utente Web spark.
enableHiveSupport() Abilita il supporto di Hive, inclusa la connettività a un metastore Hive persistente.
getOrCreate() Ottiene un sparkSession esistente o, se non ne esiste uno esistente, ne crea uno nuovo in base alle opzioni impostate in questo generatore.
create() Crea una nuova sessione SparkSession.

Examples

spark = (
    SparkSession.builder
        .master("local")
        .appName("Word Count")
        .config("spark.some.config.option", "some-value")
        .getOrCreate()
)
spark.sql("SELECT * FROM range(10) where id > 7").show()
+---+
| id|
+---+
|  8|
|  9|
+---+
spark.createDataFrame([('Alice', 1)], ['name', 'age']).show()
+-----+---+
| name|age|
+-----+---+
|Alice|  1|
+-----+---+
spark.range(1, 7, 2).show()
+---+
| id|
+---+
|  1|
|  3|
|  5|
+---+