Develops and executes Spark code on Dataproc Clusters and Serverless. Reads and writes data using BigLake Iceberg catalogs, BigQuery and Spanner. Debugs execution failures. Use when: - Writing Spark ETL pipelines on GCP. - Training or running inference with ML models with spark on GCP. - Managing Spark clusters, jobs, batches, and interactive sessions. Don't use when: - Writing generic Python scripts that don't use Spark. - Performing simple SQL queries that can be done directly in BigQuery.
83%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Passed
No findings from the security scan
[!IMPORTANT] You MUST ALWAYS follow the Task Execution Workflow when writing spark code.
@skill:discovering-gcp-data-assets
skill or resources/schema_direct_inspection.md to understand input and
output schemas. Include the schema in your thought process BEFORE generating
any code. Do NOT guess column names.resources/read_write_data.md when reading or writing data.@skill:ml-best-practices skill and
resources/ml_tasks.md when generating ML code.resources/spark_optimizations.md when generating spark code and apply
optimization whenever applicable.df.printSchema() for dataframe schema and
refer to @skill:discovering-gcp-data-assets skill or
resources/schema_direct_inspection.md to verify destination schema.jupyter nbconvert --to script your-notebook.ipynb first, then
compile code using python3 -m py_compile your-notebook.py..py script refer to
resources/gcloud_dataproc.md on writing command to execute generated code
on Dataproc. This DOES NOT apply when generating notebooks.[!CAUTION] Ensure you verify this checklist to avoid mistakes
Before submitting a job, verify:
col, when, lit, etc. from
pyspark.sql.functions)vector_to_array from correct module use from pyspark.ml.functions import vector_to_array (NOT pyspark.sql.functions)df.printSchema() before writingheader and inferSchema without these, the
header row becomes data and all columns are stringsThe Dataproc service account needs:
roles/dataproc.worker: Job executionroles/biglake.admin: Iceberg table managementroles/bigquery.jobUser: Query materializationroles/storage.objectUser: Read/write GCSroles/spanner.databaseUser: Spanner writesRefer to resources/gcloud_dataproc.md for detailed guidelines on managing
Spark clusters, jobs, batches, and interactive sessions.
saski/arnesto
752f690
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.