Le client Dataproc Spark Connect est un wrapper du client Apache Spark Connect. Il permet aux applications de communiquer avec une session Serverless pour Apache Spark distante à l'aide du protocole Spark Connect. Ce document vous explique comment installer, configurer et utiliser le client.
Avant de commencer
Assurez-vous de disposer des rôles Identity and Access Management qui contiennent les autorisations nécessaires pour gérer les sessions interactives et les modèles de session.
Si vous exécutez le client en dehors de Google Cloud, fournissez des identifiants d'authentification. Définissez la variable d'environnement
GOOGLE_APPLICATION_CREDENTIALSsur le chemin d'accès au fichier de clé de votre compte de service.
Installer ou désinstaller le client
Vous pouvez installer ou désinstaller le package dataproc-spark-connect à l'aide de pip.
Installer
Pour installer la dernière version du client, exécutez la commande suivante :
pip install -U dataproc-spark-connect
Désinstaller
Pour désinstaller le client, exécutez la commande suivante :
pip uninstall dataproc-spark-connect
Configurer le client
Spécifiez le projet et la région pour votre session. Vous pouvez définir ces valeurs à l'aide de variables d'environnement ou de l'API Builder dans votre code.
Variables d'environnement
Définissez les variables d'environnement GOOGLE_CLOUD_PROJECT et GOOGLE_CLOUD_REGION.
API Builder
Utilisez les méthodes .projectId() et .location().
spark = DataprocSparkSession.builder.projectId("my-project").location("us-central1").getOrCreate()
Démarrer une session Spark
Pour démarrer une session Spark, ajoutez les importations requises à votre application ou notebook PySpark, puis appelez l'API DataprocSparkSession.builder.getOrCreate().
Importez la classe
DataprocSparkSession.Appelez la méthode
getOrCreate()pour démarrer la session.from google.cloud.dataproc_spark_connect import DataprocSparkSession spark = DataprocSparkSession.builder.getOrCreate()
Configurer les propriétés Spark
Pour configurer les propriétés Spark, enchaînez une ou plusieurs méthodes .config() au générateur.
from google.cloud.dataproc_spark_connect import DataprocSparkSession
spark = DataprocSparkSession.builder.config('spark.executor.memory', '48g').config('spark.executor.cores', '8').getOrCreate()
Utiliser la configuration avancée
Pour une configuration avancée, utilisez la classe Session afin de personnaliser des paramètres tels que le sous-réseau ou la version de l'environnement d'exécution.
from google.cloud.dataproc_spark_connect import DataprocSparkSession
from google.cloud.dataproc_v1 import Session
session_config = Session()
session_config.environment_config.execution_config.subnetwork_uri = 'SUBNET'
session_config.runtime_config.version = '3.0'
spark = DataprocSparkSession.builder.projectId('my-project').location('us-central1').dataprocSessionConfig(session_config).getOrCreate()
Réutiliser une session nommée
Les sessions nommées vous permettent de partager une même session Spark entre plusieurs notebooks, tout en évitant les retards répétés au démarrage des sessions.
Dans votre premier notebook, créez une session avec un ID personnalisé.
from google.cloud.dataproc_spark_connect import DataprocSparkSession session_id = 'my-ml-pipeline-session' spark = DataprocSparkSession.builder.dataprocSessionId(session_id).getOrCreate() df = spark.createDataFrame([(1, 'data')], ['id', 'value']) df.show()Dans un autre notebook, réutilisez la session en spécifiant le même ID de session.
from google.cloud.dataproc_spark_connect import DataprocSparkSession session_id = 'my-ml-pipeline-session' spark = DataprocSparkSession.builder.dataprocSessionId(session_id).getOrCreate() df = spark.createDataFrame([(2, 'more-data')], ['id', 'value']) df.show()
Les ID de session doivent comporter entre 4 et 63 caractères, commencer par une lettre minuscule et ne contenir que des lettres minuscules, des chiffres et des traits d'union. L'ID ne peut pas se terminer par un trait d'union. Une session dont l'ID est à l'état TERMINATED ne peut pas être réutilisée.
Utiliser les commandes magiques Spark SQL
Le package est compatible avec la bibliothèque sparksql-magic pour exécuter des requêtes SparkSQL dans les notebooks Jupyter. Les commandes magiques sont une fonctionnalité facultative.
Installez les dépendances requises.
pip install IPython sparksql-magicChargez l'extension magique.
%load_ext sparksql_magicFacultatif : configurez les paramètres par défaut.
%config SparkSql.limit=20Exécuter des requêtes SQL
%%sparksql SELECT * FROM your_table
Pour utiliser les options avancées, ajoutez des options à la commande %%sparksql. Par exemple, pour mettre en cache les résultats et créer une vue, exécutez la commande suivante :
%%sparksql --cache --view result_view df
SELECT * FROM your_table WHERE condition = true
Les options suivantes sont disponibles :
--cacheou-c: met en cache le DataFrame.--eagerou-e: caches avec chargement différé.--view VIEWou-v VIEW: crée une vue temporaire.--limit Nou-l N: remplace la limite d'affichage des lignes par défaut.variable_name: stocke le résultat dans une variable.
Étapes suivantes
En savoir plus sur les sessions Dataproc