Spark Connect¶
Forma parte del lakehouse (visión general y esquema de interacciones).
La plantilla Spark Connect (categoría Procesamiento) despliega un servidor Apache Spark en modo local (ejecutores dentro del pod) expuesto mediante el protocolo Spark Connect: los notebooks y clientes PySpark del namespace comparten una única instalación Spark, ya configurada sobre el catálogo Apache Iceberg elegido. Sin ruta pública (protocolo gRPC interno al namespace).
| Campo | Función |
|---|---|
| Catálogo Apache Iceberg (Polaris) (obligatorio) | Instancia del mismo namespace. Fijado en la creación. |
| Catálogo Iceberg (warehouse) | Nombre del catálogo en Polaris, lakehouse por defecto. |
| Versión de Spark | Tag de la imagen ds/spark-connect. Vacío = versión del chart. |
| Bucket S3 del warehouse (pestaña Almacenamiento) | El mismo bucket que el del catálogo: selecciónelo para rellenar endpoint, región y claves. |
| Endpoint S3, Región S3, Access Key ID, Secret Access Key (pestaña Almacenamiento) | Rellenados por el selector de bucket, modificables después — entrada manual para un S3 externo. |
| Núcleos Spark (local[N]) (pestaña Capacidad) | Número de hilos de ejecución en el pod, 2 por defecto; el límite de CPU del pod lo sigue. |
| Memoria Spark (driver), Límite de memoria del pod (pestaña Capacidad) | 2g y 3Gi por defecto: mantenga ~1 Gi de margen entre la memoria Spark y el límite del pod. |
| Exigir un token de conexión | Token compartido (spark.connect.authenticate.token), guardado en el secreto <nombre>-platform. Desactivado por defecto. |
Desde un notebook JupyterHub asociado (SPARK_REMOTE prerrellenado) o cualquier cliente pyspark-client de la misma versión menor que el servidor:
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()
Eliminación¶
Eliminar una instancia Spark Connect no afecta a nada más; los jobs Spark que la usan como perfil ya no podrán relanzarse tal cual.