Partage via


SparkSession

Point d’entrée pour programmer Spark avec le jeu de données et l’API DataFrame. Une session SparkSession peut être utilisée pour créer des DataFrames, inscrire des DataFrames en tant que tables, exécuter SQL sur des tables, mettre en cache des tables et lire des fichiers Parquet.

Syntaxe

from pyspark.sql import SparkSession

spark = SparkSession.builder.getOrCreate()

Propriétés

Propriété Description
version Version de Spark sur laquelle cette application s’exécute.
conf Interface de configuration du runtime pour Spark.
catalog Interface via laquelle l’utilisateur peut créer, supprimer, modifier ou interroger des bases de données sous-jacentes, des tables, des fonctions, etc.
udf Retourne une UDFRegistration pour l’inscription UDF.
udtf Retourne une valeur UDTFRegistration pour l’inscription UDTF.
dataSource Retourne une DataSourceRegistration pour l’inscription de la source de données.
profile Retourne un profil pour le profilage des performances/de la mémoire.
sparkContext Retourne le sparkContext sous-jacent. Mode classique uniquement.
read Retourne un DataFrameReader qui peut être utilisé pour lire des données en tant que DataFrame.
readStream Retourne un DataStreamReader qui peut être utilisé pour lire des flux de données en tant que DataFrame de streaming.
streams Retourne un StreamingQueryManager qui permet de gérer toutes les requêtes de streaming actives.
tvf Retourne une tableValuedFunction pour appeler des fonctions table (TVFs).

Méthodes

Méthode Description
createDataFrame(data, schema, samplingRatio, verifySchema) Crée un DataFrame à partir d’un RDD, d’une liste, d’un DataFrame pandas, d’un ndarray numpy ou d’une table pyarrow.
sql(sqlQuery, args, **kwargs) Retourne un DataFrame représentant le résultat de la requête donnée.
table(tableName) Retourne la table spécifiée en tant que DataFrame.
range(start, end, step, numPartitions) Crée un DataFrame avec une seule colonne LongType nommée id, contenant des éléments dans une plage.
newSession() Retourne une nouvelle session SparkSession avec sqlConf distinct, des vues temporaires inscrites et des fonctions définies par l’utilisateur, mais un cache sparkContext et un cache de table partagés. Mode classique uniquement.
getActiveSession() Retourne la session SparkSession active pour le thread actif.
active() Retourne la session SparkSession active ou par défaut pour le thread actif.
stop() Arrête le SparkContext sous-jacent.
addArtifacts(*path, pyfile, archive, file) Ajoute des artefacts à la session cliente.
interruptAll() Interrompt toutes les opérations de cette session en cours d’exécution sur le serveur.
interruptTag(tag) Interrompt toutes les opérations de cette session avec la balise donnée.
interruptOperation(op_id) Interrompt une opération de cette session avec l’id d’opération donné.
addTag(tag) Ajoute une balise à affecter à toutes les opérations démarrées par ce thread dans cette session.
removeTag(tag) Supprime une balise précédemment ajoutée pour les opérations démarrées par ce thread.
getTags() Obtient les balises actuellement définies pour être affectées à toutes les opérations démarrées par ce thread.
clearTags() Efface les balises d’opération du thread actuel.

Constructeur

Méthode Description
config(key, value) Définit une option de configuration. Les options sont automatiquement propagées à la fois à sparkConf et à la configuration de SparkSession.
master(master) Définit l’URL principale Spark à laquelle se connecter.
remote(url) Définit l’URL distante Spark pour se connecter via Spark Connect.
appName(name) Définit un nom pour l’application, qui s’affiche dans l’interface utilisateur web Spark.
enableHiveSupport() Active la prise en charge de Hive, notamment la connectivité à un metastore Hive persistant.
getOrCreate() Obtient une session SparkSession existante ou, s’il n’y en a pas, crée une nouvelle en fonction des options définies dans ce générateur.
create() Crée une session SparkSession.

Exemples

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