Skip to content

[SPARK-49273][CONNECT][SQL] Origin support for Spark Connect Scala client #49373

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 10 commits into from

Conversation

xupefei
Copy link
Contributor

@xupefei xupefei commented Jan 6, 2025

What changes were proposed in this pull request?

This PR adds support for Origin to the Scala client of Spark Connect.

The approach is to send the client Origin instance over the wire to the Server, which will reconstruct the instance and attach it to the expression during transformation. By default, only the last element in the stack trace is sent to the server. This is in line with the Python implementation and can be controlled via a Spark config spark.sql.stackTracesInDataFrameContext.

One Origin message can contain only one of PythonOrigin and JvmOrigin. The former is filled by the Python client (#46789) and the latter by the Scala client (this PR).

Why are the changes needed?

Close the gap between Classic & Connect.

Does this PR introduce any user-facing change?

No.

How was this patch tested?

New tests.

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

Yes, to generate protobuf messages.

# Conflicts:
#	connector/connect/client/jvm/src/test/scala/org/apache/spark/sql/KeyValueGroupedDatasetE2ETestSuite.scala
@github-actions github-actions bot added the PYTHON label Jan 7, 2025
@xupefei xupefei changed the title [SPARK-49273] Origin support for Spark Connect Scala client [SPARK-49273][Connect][SQL] Origin support for Spark Connect Scala client Jan 7, 2025
…ster' of github.com:apache/spark into connect-origin

# Conflicts:
#	python/pyspark/sql/connect/proto/common_pb2.py
#	python/pyspark/sql/connect/proto/common_pb2.pyi
#	sql/connect/common/src/main/protobuf/spark/connect/common.proto
#	sql/connect/common/src/test/resources/query-tests/queries/to_protobuf_messageClassName.json
#	sql/connect/common/src/test/resources/query-tests/queries/to_protobuf_messageClassName.proto.bin
#	sql/connect/common/src/test/resources/query-tests/queries/to_protobuf_messageClassName_descFilePath.json
#	sql/connect/common/src/test/resources/query-tests/queries/to_protobuf_messageClassName_descFilePath.proto.bin
#	sql/connect/common/src/test/resources/query-tests/queries/to_protobuf_messageClassName_descFilePath_options.json
#	sql/connect/common/src/test/resources/query-tests/queries/to_protobuf_messageClassName_descFilePath_options.proto.bin
#	sql/connect/common/src/test/resources/query-tests/queries/to_protobuf_messageClassName_options.json
#	sql/connect/common/src/test/resources/query-tests/queries/to_protobuf_messageClassName_options.proto.bin
@HyukjinKwon HyukjinKwon changed the title [SPARK-49273][Connect][SQL] Origin support for Spark Connect Scala client [SPARK-49273][CONNECT][SQL] Origin support for Spark Connect Scala client Jan 19, 2025
@HyukjinKwon
Copy link
Member

HyukjinKwon commented Jan 19, 2025

Merged to master and branch-4.0.

HyukjinKwon pushed a commit that referenced this pull request Jan 19, 2025
…ient

This PR adds support for `Origin` to the Scala client of Spark Connect.

The approach is to send the client `Origin` instance over the wire to the Server, which will reconstruct the instance and attach it to the expression during transformation. By default, only the last element in the stack trace is sent to the server. This is in line with the Python implementation and can be controlled via a Spark config `spark.sql.stackTracesInDataFrameContext`.

One Origin message can contain only one of `PythonOrigin` and `JvmOrigin`. The former is filled by the Python client (#46789) and the latter by the Scala client (this PR).

Close the gap between Classic & Connect.

No.

New tests.

Yes, to generate protobuf messages.

Closes #49373 from xupefei/connect-origin.

Authored-by: Paddy Xu <xupaddy@gmail.com>
Signed-off-by: Hyukjin Kwon <gurwls223@apache.org>
(cherry picked from commit c7df014)
Signed-off-by: Hyukjin Kwon <gurwls223@apache.org>
@xupefei xupefei deleted the connect-origin branch January 20, 2025 13:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants