google-iceberg-spark-bigquery

Configures a Google Cloud Lakehouse integrating Apache Iceberg, Dataproc Spark, and BigQuery.

Updated Jul 7, 2026
One-click install
npx skills add https://github.com/ricardolui/gcp-custom-agent-skills --skill google-iceberg-spark-bigquery-ricardolui
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: google-iceberg-spark-bigquery
Source: https://github.com/ricardolui/gcp-custom-agent-skills/tree/main/google-iceberg-spark-bigquery
Command: npx skills add https://github.com/ricardolui/gcp-custom-agent-skills --skill google-iceberg-spark-bigquery-ricardolui

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires pyspark, google-cloud-dataproc-spark-connect.

What problem does it solve? Setting up an open-format Lakehouse on Google Cloud requires coordinating Apache Iceberg catalogs, credential vending, Spark session configuration, and BigQuery interoperability, which involves many error-prone manual steps across gcloud, PySpark, and SQL. ## Core Features & Use Cases - Lakehouse Catalog Setup: Create BigLake Iceberg REST catalogs with vended-credentials and grant the catalog service account access to GCS buckets. - Spark Configuration Patterns: Configure Dataproc Serverless batches, standard PySpark sessions, and Spark Connect sessions for BigQuery Studio or Colab Enterprise notebooks. - Cross-Engine Interoperability: Enable BigQuery DML and table management preview features so Spark and BigQuery can read and write the same Iceberg tables with ACID transactions. - Use Case: A data engineer creates an Iceberg table via a Dataproc Serverless PySpark job, then runs UPDATE statements on the same table directly from BigQuery without copying data. ## Quick Start Ask the assistant to create a Lakehouse Iceberg REST catalog with credential vending and configure a Dataproc Serverless PySpark job to write a table that BigQuery can query.

Frequently Asked Questions about google-iceberg-spark-bigquery

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I create an Iceberg REST catalog on Google Cloud?▼

Use gcloud biglake iceberg catalogs create with --catalog-type=biglake, a default GCS location, and --credential-mode=vended-credentials. Then grant the catalog's auto-provisioned service account the Storage Object User role on your bucket.

How to connect PySpark to BigLake Iceberg catalog?▼

Configure SparkSession with spark.sql.catalog properties pointing to https://biglake.googleapis.com/iceberg/v1/restcatalog, using GoogleAuthManager for auth and GCSFileIO for storage. For Dataproc Serverless, use the dataproc.lakehouse.catalog property instead.

Can BigQuery and Spark write to the same Iceberg table?▼

Yes, when the table is created with 'gcp.biglake.bigquery-dml.enabled' and 'gcp.biglake.table-management.enabled' table properties. Both engines can then run ACID DML operations against the same Iceberg table registered in the Lakehouse catalog.

What is credential vending in BigLake Iceberg catalogs?▼

Credential vending is an access delegation mode where the catalog service account issues short-lived GCS access tokens to clients. Client applications like Spark do not need direct IAM permissions on the storage bucket.

How do I configure Spark Connect in BigQuery Studio for Iceberg?▼

Use the DataprocSparkSession builder from google.cloud.dataproc_spark_connect with a Session object whose runtime_config.properties contain the Iceberg REST catalog settings. This differs from standard SparkSession configuration used in batch jobs.

Why does my Spark job fail to access GCS through the Iceberg catalog?▼

The catalog's service account likely lacks permissions on the bucket. Retrieve it with gcloud biglake iceberg catalogs describe and grant roles/storage.objectUser on the GCS bucket holding your Iceberg data.