Descripción general
Dataproc Serverless es un servicio completamente administrado que facilita la ejecución de cargas de trabajo de procesamiento y análisis de datos de código abierto sin tener que administrar la infraestructura ni ajustar las cargas de trabajo de forma manual.
Dataproc Serverless para Spark proporciona un entorno optimizado diseñado para transferir con facilidad las cargas de trabajo de Spark existentes a Google Cloud.
En este lab, ejecutarás una carga de trabajo de Batch en un entorno de Dataproc Serverless. La carga de trabajo utilizará una plantilla de Spark para procesar un archivo Avro, y así crear y cargar una tabla de BigQuery.
Actividades
- Configurar el entorno
- Descargar los recursos del lab
- Configurar y ejecutar el código de Spark
- Visualizar datos en BigQuery
Configuración
Antes de hacer clic en el botón Comenzar lab
Lea estas instrucciones. Los labs tienen un tiempo límite; no puede ponerlos en pausa. El cronómetro, que comienza a funcionar cuando hace clic en Comenzar lab, indica por cuánto tiempo estarán los recursos en la nube a su disposición.
Este lab práctico de Qwiklabs le permitirá llevar a cabo las actividades correspondientes en un entorno de nube real, no en uno de simulación o demostración. Para ello, recibe nuevas credenciales temporales que utilizará para acceder a Google Cloud Platform durante el transcurso del lab.
Lo que necesita
Para completar este lab, necesitará lo siguiente:
- Acceso a un navegador de Internet estándar. Se recomienda el navegador Chrome
- Tiempo para completar el lab
Nota: Si ya tiene un proyecto o una cuenta personal de GCP, no los use para este lab.
Cómo iniciar tu lab y acceder a la consola
-
Haz clic en el botón Comenzar lab. Si debes pagar por el lab, se abrirá una ventana emergente para que selecciones tu forma de pago.
A la izquierda, verás un panel con las credenciales temporales que debes usar para este lab.

-
Copia el nombre de usuario y, luego, haz clic en Abrir la consola de Google.
El lab inicia los recursos y abre otra pestaña que muestra la página Elige una cuenta.
Sugerencia: Abre las pestañas en ventanas separadas, una junto a la otra.
-
En la página Elige una cuenta, haz clic en Usar otra cuenta. Se abrirá la página de acceso.

-
Pega el nombre de usuario que copiaste del panel Detalles de la conexión. Luego, copia y pega la contraseña.
Nota: Debes usar las credenciales del panel Detalles de la conexión. No uses tus credenciales de Google Cloud Skills Boost. Si tienes una cuenta propia de Google Cloud, no la utilices para este lab para no incurrir en cargos.
- Haz clic para avanzar por las páginas siguientes:
- Acepta los Términos y Condiciones.
- No agregues opciones de recuperación o autenticación de dos factores (esta es una cuenta temporal).
- No te registres para obtener pruebas gratuitas.
Después de un momento, se abrirá la consola de Cloud en esta pestaña.
Nota: Para ver el menú con una lista de los productos y servicios de Google Cloud, haz clic en el menú de navegación que se encuentra en la parte superior izquierda de la pantalla.
Activa Google Cloud Shell
Google Cloud Shell es una máquina virtual que cuenta con herramientas para desarrolladores. Ofrece un directorio principal persistente de 5 GB y se ejecuta en Google Cloud.
Google Cloud Shell proporciona acceso de línea de comandos a tus recursos de Google Cloud.
-
En la consola de Cloud, en la barra de herramientas superior derecha, haz clic en el botón Abrir Cloud Shell.

-
Haz clic en Continuar.
El aprovisionamiento y la conexión al entorno demorarán unos minutos. Cuando te conectes, habrás completado la autenticación, y el proyecto estará configurado con tu PROJECT_ID. Por ejemplo:

gcloud es la herramienta de línea de comandos de Google Cloud. Viene preinstalada en Cloud Shell y es compatible con el completado de línea de comando.
- Puedes solicitar el nombre de la cuenta activa con este comando:
gcloud auth list
Resultado:
Credentialed accounts:
- @.com (active)
Resultado de ejemplo:
Credentialed accounts:
- google1623327_student@qwiklabs.net
- Puedes solicitar el ID del proyecto con este comando:
gcloud config list project
Resultado:
[core]
project =
Resultado de ejemplo:
[core]
project = qwiklabs-gcp-44776a13dea667a6
Nota:
La documentación completa de gcloud está disponible en la
guía de descripción general de gcloud CLI
.
Tarea 1. Completa las tareas de configuración del entorno
Primero, realizarás algunas tareas de configuración del entorno para respaldar la ejecución de una carga de trabajo de Dataproc Serverless.
- En Cloud Shell, ejecuta el siguiente comando, que habilitará el acceso a la IP privada:
gcloud compute networks subnets update default --region={{{project_0.default_region |REGION}}} --enable-private-ip-google-access
- Utiliza el siguiente comando para crear un nuevo bucket de Cloud Storage como la ubicación de etapa de pruebas:
gsutil mb -p {{{project_0.project_id |PROJECT_ID}}} gs://{{{project_0.project_id |PROJECT_ID}}}
- Usa el siguiente comando para crear un nuevo bucket de Cloud Storage como ubicación temporal para BigQuery mientras crea y carga una tabla:
gsutil mb -p {{{project_0.project_id |PROJECT_ID}}} gs://{{{project_0.project_id |PROJECT_ID}}}-bqtemp
- Crea un conjunto de datos de BigQuery para almacenar los datos.
bq mk -d loadavro
Completar las tareas de configuración del entorno
Tarea 2. Descarga los recursos del lab
A continuación, descargarás algunos recursos necesarios para completar el lab en la VM de Compute Engine proporcionada para el lab. Realizarás el resto de los pasos del lab dentro de la VM de Compute Engine.
- En el menú de navegación, haz clic en Compute Engine. Aquí verás una VM de Linux aprovisionada para ti. Haz clic en el botón SSH junto a la instancia lab-vm.

- En el prompt de la terminal de la VM, descarga el archivo Avro que se procesará para su almacenamiento en BigQuery.
wget https://storage.googleapis.com/cloud-training/dataengineering/lab_assets/idegc/campaigns.avro
- A continuación, mueve el archivo Avro al bucket de Cloud Storage de la etapa de pruebas que creaste anteriormente.
gcloud storage cp campaigns.avro gs://{{{project_0.project_id |PROJECT_ID}}}
- Descarga un archivo que contenga el código de Spark que se ejecutará en el entorno de Dataproc Serverless.
wget https://storage.googleapis.com/cloud-training/dataengineering/lab_assets/idegc/dataproc-templates.zip
- Extrae el archivo.
unzip dataproc-templates.zip
- Cámbiate al directorio de Python.
cd dataproc-templates/python
Descargar los recursos del lab
Tarea 3. Configura y ejecuta el código de Spark
A continuación, vas a establecer algunas variables de entorno en la terminal de la instancia de VM y ejecutarás una plantilla de Spark para cargar datos en BigQuery.
- Establece las siguientes variables de entorno para el entorno de Dataproc Serverless.
export GCP_PROJECT={{{project_0.project_id |PROJECT_ID}}}
export REGION={{{project_0.default_region |REGION}}}
export GCS_STAGING_LOCATION=gs://{{{project_0.project_id |PROJECT_ID}}}
export JARS=gs://cloud-training/dataengineering/lab_assets/idegc/spark-bigquery_2.12-20221021-2134.jar
- Ejecuta el siguiente código para ejecutar la plantilla de Spark Cloud Storage a BigQuery para cargar el archivo Avro en BigQuery.
./bin/start.sh \
-- --template=GCSTOBIGQUERY \
--gcs.bigquery.input.format="avro" \
--gcs.bigquery.input.location="gs://{{{project_0.project_id |PROJECT_ID}}}" \
--gcs.bigquery.input.inferschema="true" \
--gcs.bigquery.output.dataset="loadavro" \
--gcs.bigquery.output.table="campaigns" \
--gcs.bigquery.output.mode=overwrite\
--gcs.bigquery.temp.bucket.name="{{{project_0.project_id |PROJECT_ID}}}-bqtemp"
Nota: Puedes ignorar cualquier advertencia en la que se indique lo siguiente: WARN FileStreamSink: Assume no metadata directory. Error while looking for metadata directory in the path… Como se trata de una prueba pequeña, no es necesario un directorio de metadatos.
Nota: Si ves un mensaje de error que indica que el trabajo por lotes falló, espera y, luego, vuelve a ejecutar el comando hasta que el trabajo se complete correctamente.
Configurar y ejecutar el código de Spark
Tarea 4. Confirma que los datos se cargaron en BigQuery
Ahora que ejecutaste correctamente la plantilla de Spark, es momento de examinar los resultados en BigQuery.
- Visualiza los datos de la nueva tabla en BigQuery.
bq query \
--use_legacy_sql=false \
'SELECT * FROM `loadavro.campaigns`;'
- La consulta debería devolver resultados similares a los siguientes:
Resultado de ejemplo:
+------------+--------+---------------------+--------+---------------------+----------+-----+
| created_at | period | campaign_name | amount | advertising_channel | bid_type | id |
+------------+--------+---------------------+--------+---------------------+----------+-----+
| 2020-09-17 | 90 | NA - Video - Other | 41 | Video | CPC | 81 |
| 2021-01-19 | 30 | NA - Video - Promo | 325 | Video | CPC | 137 |
| 2021-06-28 | 30 | NA - Video - Promo | 78 | Video | CPC | 214 |
| 2021-03-15 | 30 | EU - Search - Brand | 465 | Search | CPC | 170 |
| 2022-01-01 | 30 | EU - Search - Brand | 83 | Search | CPC | 276 |
| 2020-02-18 | 30 | EU - Search - Brand | 30 | Search | CPC | 25 |
| 2021-06-08 | 30 | EU - Search - Brand | 172 | Search | CPC | 201 |
| 2020-11-29 | 60 | EU - Search - Other | 83 | Search | CPC | 115 |
| 2021-09-11 | 30 | EU - Search - Other | 86 | Search | CPC | 237 |
| 2022-02-17 | 30 | EU - Search - Other | 64 | Search | CPC | 296 |
+------------+--------+---------------------+--------+---------------------+----------+-----+
Confirmar que los datos se cargaron en BigQuery
¡Felicitaciones!
Ejecutaste correctamente una carga de trabajo de Batch a través de Dataproc Serverless para Spark para cargar un archivo Avro en una tabla de BigQuery.
Copyright 2020 Google LLC. All rights reserved. Google y el logotipo de Google son marcas de Google LLC. Los demás nombres de productos y empresas pueden ser marcas de las respectivas empresas a las que estén asociados.