En este documento se describe cómo instalar y usar la extensión JupyterLab en una máquina o una VM autogestionada que tenga acceso a los servicios de Google. También se describe cómo desarrollar y desplegar código de cuaderno de Spark sin servidor.
Instala la extensión en cuestión de minutos para disfrutar de las siguientes funciones:
- Lanza cuadernos de Spark sin servidor y de BigQuery para desarrollar código rápidamente
- Consultar y previsualizar conjuntos de datos de BigQuery en JupyterLab
- Editar archivos de Cloud Storage en JupyterLab
- Programar un cuaderno en Composer
Antes de empezar
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Enable the Dataproc API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. -
Install the Google Cloud CLI.
-
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Enable the Dataproc API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. -
Install the Google Cloud CLI.
-
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init
Descarga e instala Python 3.11 o una versión posterior desde
python.org/downloads
.- Verifica que Python 3.11 o una versión posterior esté instalado.
python3 --version
- Verifica que Python 3.11 o una versión posterior esté instalado.
Virtualiza el entorno de Python.
pip3 install pipenv
- Crea una carpeta de instalación.
mkdir jupyter
- Cambia a la carpeta de instalación.
cd jupyter
- Crea un entorno virtual.
pipenv shell
- Crea una carpeta de instalación.
Instala JupyterLab en el entorno virtual.
pipenv install jupyterlab
Instala la extensión de JupyterLab.
pipenv install bigquery-jupyter-plugin
jupyter lab
La página Launcher de JupyterLab se abre en tu navegador. Contiene una sección sobre tareas y sesiones de Dataproc. También puede contener las secciones Cuadernos de Serverless para Apache Spark y Cuadernos de clúster de Dataproc si tienes acceso a cuadernos de Dataproc sin servidor o a clústeres de Dataproc con el componente opcional Jupyter en tu proyecto.
De forma predeterminada, tu sesión interactiva de Serverless para Apache Spark se ejecuta en el proyecto y la región que definiste al ejecutar
gcloud init
en Antes de empezar. Puedes cambiar los ajustes de proyecto y de región de tus sesiones desde JupyterLab Configuración > Google Cloud Configuración > Google Cloud Configuración del proyecto.Debes reiniciar la extensión para que los cambios se apliquen.
Haz clic en la tarjeta
New runtime template
de la sección Notebooks de Serverless para Apache Spark de la página Launcher de JupyterLab.Rellena el formulario Plantilla de entorno de ejecución.
Información de la plantilla:
- Nombre visible, ID de tiempo de ejecución y Descripción: acepta o rellena un nombre visible, un ID de tiempo de ejecución y una descripción de la plantilla.
Configuración de ejecución: selecciona Cuenta de usuario para ejecutar cuadernos con la identidad del usuario en lugar de con la identidad de la cuenta de servicio de Dataproc.
- Cuenta de servicio: si no especificas ninguna cuenta de servicio, se usará la cuenta de servicio predeterminada de Compute Engine.
- Versión del entorno de ejecución: confirma o selecciona la versión del entorno de ejecución.
- Imagen de contenedor personalizada: especifica de forma opcional el URI de una imagen de contenedor personalizada.
- Segmento de almacenamiento provisional: puedes especificar el nombre de un segmento de almacenamiento provisional de Cloud Storage para que lo use Serverless para Apache Spark.
- Repositorio de paquetes de Python: de forma predeterminada, los paquetes de Python se descargan e instalan desde la caché pull-through de PyPI cuando los usuarios ejecutan comandos
pip
install en sus cuadernos. Puede especificar el repositorio de artefactos privados de su organización para que los paquetes de Python lo usen como repositorio predeterminado de paquetes de Python.
Encriptado: acepta el valor predeterminado Google-owned and Google-managed encryption key o selecciona Clave de encriptado gestionada por el cliente (CMEK). Si es una CMEK, selecciona o proporciona la información de la clave.
Configuración de red: selecciona una subred del proyecto o compartida desde un proyecto host (puedes cambiar el proyecto desde JupyterLab Configuración > Google Cloud Configuración > Google Cloud Configuración del proyecto). Puede especificar etiquetas de red para aplicarlas a la red especificada. Ten en cuenta que Serverless para Apache Spark habilita el acceso privado de Google (PGA) en la subred especificada. Para consultar los requisitos de conectividad de red, consulta Google Cloud Configuración de red de Serverless para Apache Spark.
Configuración de la sesión: puede rellenar estos campos para limitar la duración de las sesiones creadas con la plantilla.
- Tiempo máximo de inactividad: el tiempo máximo de inactividad antes de que finalice la sesión. Intervalo permitido: de 10 minutos a 336 horas (14 días).
- Tiempo máximo de la sesión: tiempo máximo de una sesión antes de que se cierre. Intervalo permitido: de 10 minutos a 336 horas (14 días).
Metastore para usar un servicio de Dataproc Metastore con tus sesiones, selecciona el ID del proyecto y el servicio de metastore.
Servidor de historial persistente: puedes seleccionar un servidor de historial persistente de Spark disponible para acceder a los registros de sesiones durante las sesiones y después de ellas.
Propiedades de Spark: puedes seleccionar y añadir las propiedades Asignación de recursos, Escalado automático o GPU de Spark. Haga clic en Añadir propiedad para añadir otras propiedades de Spark. Para obtener más información, consulta Propiedades de Spark.
Etiquetas: haga clic en Añadir etiqueta para cada etiqueta que quiera definir en las sesiones creadas con la plantilla.
Haz clic en Guardar para crear la plantilla.
Para ver o eliminar una plantilla de tiempo de ejecución, sigue estos pasos:
- Haz clic en Configuración > Google Cloud Configuración.
En la sección Configuración de Dataproc > Plantillas de tiempo de ejecución sin servidor se muestra la lista de plantillas de tiempo de ejecución.
- Haga clic en el nombre de una plantilla para ver sus detalles.
- Puedes eliminar una plantilla desde el menú Acción de la plantilla.
Abre y vuelve a cargar la página Launcher de JupyterLab para ver la tarjeta de la plantilla de cuaderno guardada en la página Launcher de JupyterLab.
Crea un archivo YAML con la configuración de tu plantilla de tiempo de ejecución.
YAML simple
environmentConfig: executionConfig: networkUri: default jupyterSession: kernel: PYTHON displayName: Team A labels: purpose: testing description: Team A Development Environment
YAML complejo
description: Example session template environmentConfig: executionConfig: serviceAccount: sa1 # Choose either networkUri or subnetworkUri networkUri: subnetworkUri: default networkTags: - tag1 kmsKey: key1 idleTtl: 3600s ttl: 14400s stagingBucket: staging-bucket peripheralsConfig: metastoreService: projects/my-project-id/locations/us-central1/services/my-metastore-id sparkHistoryServerConfig: dataprocCluster: projects/my-project-id/regions/us-central1/clusters/my-cluster-id jupyterSession: kernel: PYTHON displayName: Team A labels: purpose: testing runtimeConfig: version: "2.3" containerImage: gcr.io/my-project-id/my-image:1.0.1 properties: "p1": "v1" description: Team A Development Environment
Crea una plantilla de sesión (tiempo de ejecución) a partir de tu archivo YAML ejecutando el siguiente comando gcloud beta dataproc session-templates import de forma local o en Cloud Shell:
gcloud beta dataproc session-templates import TEMPLATE_ID \ --source=YAML_FILE \ --project=PROJECT_ID \ --location=REGION
- Consulta gcloud beta dataproc session-templates para ver los comandos que permiten describir, enumerar, exportar y eliminar plantillas de sesiones.
Inicia un cuaderno de Jupyter en Serverless para Apache Spark.
Inicia un cuaderno de Jupyter en un clúster de Dataproc en Compute Engine.
Haz clic en una tarjeta para crear una sesión de Serverless para Apache Spark y abrir un cuaderno. Cuando se haya creado la sesión y el kernel del cuaderno esté listo para usarse, el estado del kernel cambiará de
Starting
aIdle (Ready)
.Escribe y prueba el código del cuaderno.
Copie y pegue el siguiente código de PySpark
Pi estimation
en la celda del cuaderno de PySpark y, a continuación, pulse Mayús+Intro para ejecutar el código.import random def inside(p): x, y = random.random(), random.random() return x*x + y*y < 1 count = sc.parallelize(range(0, 10000)) .filter(inside).count() print("Pi is roughly %f" % (4.0 * count / 10000))
Resultado del cuaderno:
Después de crear y usar un cuaderno, puedes finalizar la sesión haciendo clic en Cerrar kernel en la pestaña Kernel.
- Para reutilizar la sesión, crea un cuaderno nuevo seleccionando Cuaderno en el menú Archivo>> Nuevo. Una vez creado el cuaderno, elige la sesión existente en el cuadro de diálogo de selección del kernel. El nuevo cuaderno reutilizará la sesión y conservará el contexto de la sesión del cuaderno anterior.
Si no finalizas la sesión, Dataproc la finalizará cuando caduque el temporizador de inactividad de la sesión. Puede configurar el tiempo de inactividad de la sesión en la configuración de la plantilla de tiempo de ejecución. El tiempo de inactividad de la sesión predeterminado es de una hora.
Haz clic en una tarjeta de la sección Cuaderno de clúster de Dataproc.
Cuando el estado del kernel cambie de
Starting
aIdle (Ready)
, podrás empezar a escribir y ejecutar código en el cuaderno.Después de crear y usar un cuaderno, puedes finalizar la sesión haciendo clic en Cerrar kernel en la pestaña Kernel.
Para acceder al navegador de Cloud Storage, haz clic en el icono del navegador de Cloud Storage en la barra lateral de la página Launcher (Menú de aplicaciones) de JupyterLab y, a continuación, haz doble clic en una carpeta para ver su contenido.
Puedes hacer clic en los tipos de archivo compatibles con Jupyter para abrirlos y editarlos. Cuando guardas los cambios en los archivos, estos se escriben en Cloud Storage.
Para crear una carpeta de Cloud Storage, haz clic en el icono de nueva carpeta y, a continuación, introduce el nombre de la carpeta.
Para subir archivos a un segmento o una carpeta de Cloud Storage, haga clic en el icono de subida y, a continuación, seleccione los archivos que quiera subir.
Haz clic en una tarjeta de PySpark en la sección Notebooks de Serverless para Apache Spark o Notebook de clúster de Dataproc de la página Launcher de JupyterLab para abrir un cuaderno de PySpark.
En la sección Cuaderno del clúster de Dataproc de la página Launcher de JupyterLab, haz clic en una tarjeta de kernel de Python para abrir un cuaderno de Python.
Haz clic en la tarjeta Apache Toree en la sección Cuaderno del clúster de Dataproc de la página Launcher de JupyterLab para abrir un cuaderno para el desarrollo de código Scala.
Imagen 1. Tarjeta del kernel de Apache Toree en la página de inicio de JupyterLab. - Desarrolla y ejecuta código de Spark en cuadernos de Serverless para Apache Spark.
- Crea y gestiona plantillas de tiempo de ejecución (sesión) de Serverless para Apache Spark, sesiones interactivas y cargas de trabajo por lotes.
- Desarrollar y ejecutar cuadernos de BigQuery.
- Navega, inspecciona y previsualiza conjuntos de datos de BigQuery.
- Descarga e instala VS Code.
- Abre VS Code y, en la barra de actividad, haz clic en Extensiones.
En la barra de búsqueda, busca la extensión Jupyter y haz clic en Instalar. La extensión de Jupyter de Microsoft es una dependencia obligatoria.
- Abre VS Code y, en la barra de actividad, haz clic en Extensiones.
En la barra de búsqueda, busca la extensión Google Cloud Code y haz clic en Instalar.
Si se te pide, reinicia VS Code.
- Abre VS Code y, en la barra de actividad, haz clic en Google Cloud Código.
- Abre la sección Dataproc.
- Haz clic en Iniciar sesión en Google Cloud. Se te redirigirá para que inicies sesión con tus credenciales.
- Usa la barra de tareas de la aplicación de nivel superior para ir a Código > Configuración > Configuración > Extensiones.
- Busca Google Cloud Código y haz clic en el icono Gestionar para abrir el menú.
- Selecciona Configuración.
- En los campos Proyecto y Región de Dataproc, introduce el nombre del proyecto y la región que quieras usar para desarrollar cuadernos y gestionar recursos de Serverless para Apache Spark. Google Cloud
- Abre VS Code y, en la barra de actividad, haz clic en Google Cloud Código.
- Abre la sección Notebooks y, a continuación, haz clic en New Serverless Spark Notebook (Nuevo cuaderno de Spark sin servidor).
- Selecciona o crea una plantilla de tiempo de ejecución (sesión) para usarla en la sesión del cuaderno.
Se crea un archivo
.ipynb
con código de ejemplo y se abre en el editor.Ahora puedes escribir y ejecutar código en tu cuaderno de Serverless para Apache Spark.
- Abre VS Code y, en la barra de actividad, haz clic en Google Cloud Código.
Abre la sección Dataproc y, a continuación, haz clic en los siguientes nombres de recursos:
- Clústeres: crea y gestiona clústeres y trabajos.
- Sin servidor: crea y gestiona cargas de trabajo por lotes y sesiones interactivas.
- Plantillas de tiempo de ejecución de Spark: crea y gestiona plantillas de sesión.
Ejecutar el código del cuaderno en la infraestructura de Google Cloud Serverless para Apache Spark
Programar la ejecución de cuadernos en Cloud Composer
Envía tareas por lotes a la infraestructura de Google Cloud Serverless para Apache Spark o a tu clúster de Dataproc en Compute Engine.
Haz clic en el botón Programador de tareas, situado en la parte superior derecha del cuaderno.
Rellene el formulario Create A Scheduled Job (Crear un trabajo programado) para proporcionar la siguiente información:
- Nombre único del trabajo de ejecución del cuaderno
- El entorno de Cloud Composer que se va a usar para desplegar el cuaderno
- Parámetros de entrada si el cuaderno está parametrizado
- La plantilla de clúster de Dataproc o de tiempo de ejecución sin servidor que se va a usar para ejecutar el cuaderno.
- Si se selecciona un clúster, indica si se debe detener después de que el cuaderno termine de ejecutarse en el clúster.
- Número de reintentos y retraso de reintento en minutos si la ejecución del cuaderno falla en el primer intento.
- Notificaciones de ejecución que se van a enviar y la lista de destinatarios. Las notificaciones se envían mediante una configuración SMTP de Airflow.
- La programación de la ejecución del cuaderno
Haz clic en Crear.
Una vez que el cuaderno se haya programado correctamente, el nombre de la tarea aparecerá en la lista de tareas programadas del entorno de Cloud Composer.
En la página Launcher (Lanzador) de JupyterLab, haz clic en la tarjeta Serverless (Sin servidor) de la sección Dataproc Jobs and Sessions (Trabajos y sesiones de Dataproc).
Haz clic en la pestaña Lote y, a continuación, en Crear lote. Rellena los campos de Información del lote.
Haz clic en Enviar para enviar el trabajo.
En la página Launcher (Lanzador) de JupyterLab, haz clic en la tarjeta Clusters (Clústeres) de la sección Dataproc Jobs and Sessions (Trabajos y sesiones de Dataproc).
Haga clic en la pestaña Trabajos y, a continuación, en Enviar trabajo.
Selecciona un clúster y, a continuación, rellena los campos de tarea.
Haz clic en Enviar para enviar el trabajo.
- Haz clic en la tarjeta Sin servidor.
- Haga clic en la pestaña Sesiones y, a continuación, en un ID de sesión para abrir la página Detalles de la sesión y ver las propiedades de la sesión, los registros Google Cloud en Explorador de registros y finalizar una sesión. Nota: Se crea una sesión única de Google Cloud Serverless para Apache Spark para iniciar cada cuaderno de Google Cloud Serverless para Apache Spark.
- Haga clic en la pestaña Lotes para ver la lista de lotes de Google Cloud Serverless para Apache Spark del proyecto y la región actuales. Haz clic en un ID de lote para ver los detalles del lote.
- Haz clic en la tarjeta Clusters. La pestaña Clústeres está seleccionada para mostrar los clústeres de Dataproc en Compute Engine activos del proyecto y la región actuales. Puede hacer clic en los iconos de la columna Acciones para iniciar, detener o reiniciar un clúster. Haga clic en el nombre de un clúster para ver sus detalles. Puede hacer clic en los iconos de la columna Acciones para clonar, detener o eliminar un trabajo.
- Haga clic en la tarjeta Tareas para ver la lista de tareas del proyecto actual. Haz clic en un ID de trabajo para ver los detalles.
Instalar la extensión de JupyterLab
.Puedes instalar y usar la extensión JupyterLab en una máquina o una VM que tenga acceso a los servicios de Google, como tu máquina local o una instancia de VM de Compute Engine.
Para instalar la extensión, sigue estos pasos:
Crear una plantilla de tiempo de ejecución de Serverless para Apache Spark
Las plantillas de tiempo de ejecución de Serverless para Apache Spark (también llamadas plantillas de sesión) contienen ajustes de configuración para ejecutar código de Spark en una sesión. Puedes crear y gestionar plantillas de tiempo de ejecución con JupyterLab o la CLI de gcloud.
JupyterLab
gcloud
Iniciar y gestionar cuadernos
Después de instalar la extensión Dataproc JupyterLab, puedes hacer clic en las tarjetas de plantilla de la página Launcher (Lanzador) de JupyterLab para hacer lo siguiente:
Iniciar un cuaderno de Jupyter en Serverless para Apache Spark
En la sección Notebooks de Serverless para Apache Spark de la página de inicio de JupyterLab se muestran tarjetas de plantillas de cuadernos que se corresponden con las plantillas de tiempo de ejecución de Serverless para Apache Spark (consulta Crear una plantilla de tiempo de ejecución de Serverless para Apache Spark).

Iniciar un cuaderno en un clúster de Dataproc en Compute Engine
Si has creado un clúster de Jupyter de Dataproc en Compute Engine, la página Lanzador de JupyterLab contiene una sección Cuaderno de clúster de Dataproc con tarjetas de kernel preinstaladas.

Para iniciar un cuaderno de Jupyter en tu clúster de Dataproc en Compute Engine, haz lo siguiente:
Gestionar archivos de entrada y salida en Cloud Storage
Para analizar datos exploratorios y crear modelos de aprendizaje automático, a menudo se utilizan entradas y salidas basadas en archivos. Serverless para Apache Spark accede a estos archivos en Cloud Storage.
Desarrollar código de cuaderno de Spark
Después de instalar la extensión JupyterLab de Dataproc, puedes iniciar cuadernos de Jupyter desde la página Launcher de JupyterLab para desarrollar código de aplicación.
Desarrollo de código de PySpark y Python
Serverless para Apache Spark y Dataproc en clústeres de Compute Engine admite kernels de PySpark. Dataproc en Compute Engine también admite kernels de Python.
Desarrollo de código SQL
Para abrir un cuaderno de PySpark y escribir y ejecutar código SQL, en la página Launcher (Lanzador) de JupyterLab, en la sección Serverless for Apache Spark Notebooks (Cuadernos de Serverless para Apache Spark) o Dataproc Cluster Notebook (Cuaderno de clúster de Dataproc), haz clic en la tarjeta del kernel de PySpark.
Función mágica de Spark SQL: como el kernel de PySpark que inicia los cuadernos de Apache Spark sin servidor se carga previamente con la función mágica de Spark SQL, en lugar de usar spark.sql('SQL STATEMENT').show()
para envolver tu instrucción SQL, puedes escribir %%sparksql magic
en la parte superior de una celda y, a continuación, escribir tu instrucción SQL en la celda.
SQL de BigQuery: el conector de Spark de BigQuery permite que el código de tu cuaderno cargue datos de tablas de BigQuery, realice análisis en Spark y, a continuación, escriba los resultados en una tabla de BigQuery.

Los tiempos de ejecución de Serverless para Apache Spark 2.2
y versiones posteriores incluyen el
conector de BigQuery Spark.
Si usas una versión anterior del tiempo de ejecución para iniciar cuadernos de Serverless para Apache Spark, puedes instalar el conector de Spark BigQuery añadiendo la siguiente propiedad de Spark a tu plantilla de tiempo de ejecución de Serverless para Apache Spark:
spark.jars: gs://spark-lib/bigquery/spark-bigquery-with-dependencies_2.12-0.25.2.jar
Desarrollo de código Scala
Los clústeres de Dataproc en Compute Engine creados con versiones de imagen 2.0
y posteriores incluyen Apache Toree, un kernel de Scala para la plataforma Jupyter Notebook que proporciona acceso interactivo a Spark.
Desarrollar código con la extensión de Visual Studio Code
Puedes usar la extensión Google Cloud Visual Studio Code (VS Code) para hacer lo siguiente:
La extensión de Visual Studio Code es gratuita, pero se te cobrará por losGoogle Cloud servicios, incluidos Dataproc, Serverless para Apache Spark y los recursos de Cloud Storage que utilices.
Usar VS Code con BigQuery: también puedes usar VS Code con BigQuery para hacer lo siguiente:
Antes de empezar
Instala la Google Cloud extensión
El icono Google Cloud Código ahora está visible en la barra de actividad de VS Code.
Configurar la extensión
Desarrollar cuadernos de Apache Spark sin servidor
Crear y gestionar recursos de Serverless para Apache Spark
Explorador de conjuntos de datos
Usa el explorador de conjuntos de datos de JupyterLab para ver los conjuntos de datos de BigLake Metastore.
Para abrir el explorador de conjuntos de datos de JupyterLab, haz clic en su icono de la barra lateral.

Puede buscar una base de datos, una tabla o una columna en el explorador de conjuntos de datos. Haga clic en el nombre de una base de datos, una tabla o una columna para ver los metadatos asociados.

Desplegar el código
Después de instalar la extensión JupyterLab de Dataproc, puedes usar JupyterLab para hacer lo siguiente:
Programar la ejecución de cuadernos en Cloud Composer
Sigue estos pasos para programar el código de tu cuaderno en Cloud Composer para que se ejecute como una tarea por lotes en Serverless para Apache Spark o en un clúster de Dataproc en Compute Engine.
Enviar una tarea por lotes a Google Cloud Serverless para Apache Spark
Enviar una tarea por lotes a un clúster de Dataproc en Compute Engine
Ver y gestionar recursos
Después de instalar la extensión Dataproc JupyterLab, puedes ver y gestionar Google Cloud Serverless para Apache Spark y Dataproc en Compute Engine desde la sección Tareas y sesiones de Dataproc de la página Launcher de JupyterLab.
Haz clic en la sección Trabajos y sesiones de Dataproc para mostrar las tarjetas Clústeres y Sin servidor.
Para ver y gestionar las sesiones de Google Cloud Serverless para Apache Spark, sigue estos pasos:
Para ver y gestionar los Google Cloud lotes de Serverless para Apache Spark, sigue estos pasos:
Para ver y gestionar clústeres de Dataproc en Compute Engine, sigue estos pasos:
Para ver y gestionar los trabajos de Dataproc en Compute Engine, sigue estos pasos: