Skip to content

[WIP][SPARK-56284] Adding UDF worker specification protobuf definition#55165

Open
sven-weber-db wants to merge 1 commit intoapache:masterfrom
sven-weber-db:spark-56324
Open

[WIP][SPARK-56284] Adding UDF worker specification protobuf definition#55165
sven-weber-db wants to merge 1 commit intoapache:masterfrom
sven-weber-db:spark-56324

Conversation

@sven-weber-db
Copy link
Copy Markdown

@sven-weber-db sven-weber-db commented Apr 2, 2026

What changes were proposed in this pull request?

This PR introduces the protobuf definitions for the UDF worker specification described in SPIP SPARK-55278 and this design document.

Overall, two new .proto files are introduced:

  • common.proto - Shared types and messages between the worker specification & the new UDF protocol (to be introduced)
  • worker_spec.proto - UDF worker specification

The changes introduced in this PR depend on pull request 55089 and will be merged afterward.

Why are the changes needed?

This is the first step toward a language-agnostic UDF protocol for Spark that enables UDF workers written in any language to communicate with the Spark engine through a well-defined specification and API boundary. The abstractions introduced here establish the core contract that concrete implementations (e.g., process-based or gRPC-based workers) will build on.

The worker specification introduced in this PR captures all the information Spark needs to:

  • Plan UDF execution (concurrency, supported UDF types, etc.)
  • Provision a UDF worker and connect to it for UDF invocation

Does this PR introduce any user-facing change?

No. All new APIs are marked @experimental, and there are no behavioral changes to existing code.

How was this patch tested?

  • Compilation of the proto files verified via both Maven and SBT.

Was this patch authored or co-authored using generative AI tooling?

Yes, in an assistive manner and for reviews.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant