Knowledge Hub Technologies Google Dataproc Serverless
Dataproc

Dataproc Serverless is a compute connector — it holds no data of its own. Set it as the parent compute connector on a GCS/BigQuery data connection to submit generated PySpark to GCP's Dataproc Batches API instead of running spark-submit locally.

Identity Delegation

Source: GcpDataprocServerlessConnectorPlugin.ts, submission logic in dataprocServerlessSubmitter.ts (connector type GCP_DATAPROC_SERVERLESS).

Set this connector as the parent_connector_id on a GCS or BigQuery data connection to enable GCP-identity delegation — no explicit credentials are injected into the batch's Spark configuration for those connections. Non-GCP connections (S3, Azure, JDBC) are never delegatable — their credentials are always injected explicitly into runtimeConfig.properties.

Connection Fields

FieldRequiredDefaultNotes
gcp_project_idYes
gcp_regionYesBatches should run in the same region as the data.
dataproc_staging_bucketYesWhere the generated .py file is uploaded. Bucket name only, no gs:// prefix.
auth_methodYesSERVICE_ACCOUNT_KEYSERVICE_ACCOUNT_KEY · WORKLOAD_IDENTITY (recommended) · WORKLOAD_IDENTITY_FEDERATION · LOCAL_USER_IMPERSONATION.
workload_identity_pool_providerFor WIF
dataproc_submitter_service_accountFor WIF / LOCAL_USER_IMPERSONATIONThe identity actually calling the Dataproc API — distinct from the batch's own runtime identity.
local_adc_file_pathNo (LOCAL_USER_IMPERSONATION)~/.config/gcloud/application_default_credentials.json
azure_managed_identity_client_idNo (WIF)Only if using a user-assigned managed identity.
service_account_emailNoProject's default Compute Engine SAThe identity the batch job itself runs as.
dataproc_runtime_versionNo2.22.2 = Spark 3.5 · 2.1 = Spark 3.3 · 1.1.
gcp_subnetworkNoRequired for Private Google Access to reach non-GCP sources.
dataproc_batch_ttl_hoursNo4Range 1–24. Auto-cancel guard against runaway cost.
dataproc_extra_jar_urisConditionallyComma-separated gs:// JDBC driver JARs; required for any JDBC-writing pipeline.
service_account_key_json (secret)For SERVICE_ACCOUNT_KEYUsed only by the platform to call the Dataproc API and upload to GCS — never forwarded into the Spark job itself.

Required IAM Roles

Dataproc Serverless has two distinct identities in play — keep them separate when granting roles:

IdentityPurposeRoles required
Submitter identity
(what auth_method resolves)
Calls the Dataproc API to create the batch and uploads the generated script dataproc.batches.create/get (e.g. roles/dataproc.editor) on the project, plus storage.objects.create on the staging bucket
Batch runtime identity
(service_account_email)
The identity actually reading/writing your data inside the Spark job roles/dataproc.worker, plus whatever data-connector roles the pipeline touches (GCS/BigQuery/etc.)

Test Connection Behaviour

Test Connection for Dataproc Serverless is config-shape-only — it checks that required fields are present but does not call the Dataproc API. Run an actual pipeline to verify end-to-end auth.

Known Limitations