Saltar a contenido

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.