[Umbrella] Support Spark Connect Frontend/Backend
- Dominant language
- Scala
- Stars
- 2.4k
- Forks
- 1k
- PR merge metrics
- No merged PRs in 30d
Description
### Code of Conduct
- [X] I agree to follow this project's [Code of Conduct](https://www.apache.org/foundation/policies/conduct)
### Search before asking
- [X] I have searched in the [issues](https://github.com/apache/kyuubi/issues) and found no similar issues.
### Describe the proposal
This issue is from #5383
### Task list
- [ ] add new module common-grpc to support grpc server
- [ ] Implement Spark Connect Engine
- [ ] compatible spark connect grpc protocl based on https://github.com/apache/spark/blob/master/connector/connect/common/src/main/protobuf/spark/connect/base.proto
- [ ] implement a grpc client based on https://github.com/apache/spark/blob/master/connector/connect/common/src/main/scala/org/apache/spark/sql/connect/client/SparkConnectClient.scala
- [ ] add SparkConnectFrontendService
- [ ] add SparkConnectBackendService
- [ ] add SparkConnectOperation and SparkConnectSession
- [ ] add ThriftToRpcRequestParser to transform thriftRequest to rpcRequest
- [ ] add RpcToThriftResponseParser to transform rpcResponse to thriftResponse
- [ ] implement all operation based on grpc client
- [ ] implement engine
- [ ] kyuubi server could provide sparkConnectEngine
- [ ] add IT based on SparkSQLEngine
- [ ] add Docs
### Are you willing to submit PR?
- [X] Yes. I would be willing to submit a PR with guidance from the Kyuubi community to improve.
- [ ] No. I cannot submit a PR at this time.
Contributor guide
Research direction
This umbrella issue spans a new common-grpc module, Spark Connect protobuf compatibility, frontend and backend services, operations and sessions, integration tests based on SparkSQLEngine, and documentation. Start by reading the referenced Spark base.proto and SparkConnectClient.scala, then inspect the existing SparkSQLEngine integration tests. Done means the listed Spark Connect engine tasks, IT coverage, and docs are completed.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- grpc, scala, spark
- Domain
- api, backend, data-engineering, distributed-systems
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 15/100