Spark Connect¶
Fait partie du lakehouse (vue d'ensemble et schéma des interactions).
Le modèle Spark Connect (catégorie Traitement) déploie un serveur Apache Spark en mode local (exécuteurs dans le pod) exposé par le protocole Spark Connect : les notebooks et clients PySpark du namespace partagent une seule installation Spark, déjà configurée sur le catalogue Apache Iceberg choisi. Pas de route publique (protocole gRPC interne au namespace).
| Champ | Rôle |
|---|---|
| Catalogue Apache Iceberg (Polaris) (requis) | Instance du même namespace. Fixé à la création. |
| Catalogue Iceberg (warehouse) | Nom du catalogue côté Polaris, lakehouse par défaut. |
| Version de Spark | Tag de l'image ds/spark-connect. Vide = version du chart. |
| Bucket S3 du warehouse (onglet Stockage) | Le même bucket que celui du catalogue : sélectionnez-le pour remplir endpoint, région et clés. |
| Endpoint S3, Région S3, Access Key ID, Secret Access Key (onglet Stockage) | Remplis par le sélecteur de bucket, modifiables après coup — saisie manuelle pour un S3 externe. |
| Cœurs Spark (local[N]) (onglet Capacité) | Nombre de threads d'exécution dans le pod, 2 par défaut ; la limite CPU du pod suit. |
| Mémoire Spark (driver), Limite mémoire du pod (onglet Capacité) | 2g et 3Gi par défaut : garder ~1 Gi de marge entre la mémoire Spark et la limite du pod. |
| Exiger un jeton de connexion | Jeton partagé (spark.connect.authenticate.token), conservé dans le secret <nom>-platform. Désactivé par défaut. |
Depuis un notebook JupyterHub rattaché (SPARK_REMOTE pré-rempli) ou tout client pyspark-client de la même version mineure que le serveur :
from pyspark.sql import SparkSession
spark = SparkSession.builder.remote(os.environ["SPARK_REMOTE"]).getOrCreate()
spark.sql("CREATE TABLE lakehouse.demo.t (x INT) USING iceberg")
spark.sql("SELECT * FROM lakehouse.demo.t").show()
Suppression¶
Supprimer une instance Spark Connect ne touche à rien d'autre ; les jobs Spark qui l'utilisent comme profil ne pourront plus être relancés tels quels.