-
Notifications
You must be signed in to change notification settings - Fork 29k
[SPARK-35380][SQL] Loading SparkSessionExtensions from ServiceLoader #32515
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
Conversation
|
Kubernetes integration test unable to build dist. exiting with code: 1 |
|
Test build #138420 has finished for PR 32515 at commit
|
|
Kubernetes integration test starting |
|
Kubernetes integration test status failure |
|
cc @cloud-fan @MrPowers @HyukjinKwon @maropu thanks |
|
Test build #138434 has finished for PR 32515 at commit
|
This reverts commit 4e84a6f.
|
Kubernetes integration test unable to build dist. exiting with code: 1 |
sql/core/src/main/scala/org/apache/spark/sql/SparkSession.scala
Outdated
Show resolved
Hide resolved
sql/core/src/main/scala/org/apache/spark/sql/SparkSessionExtensionsProvider.scala
Show resolved
Hide resolved
|
Test build #138443 has finished for PR 32515 at commit
|
|
Kubernetes integration test starting |
|
Kubernetes integration test status failure |
|
Test build #138428 has finished for PR 32515 at commit
|
|
Kubernetes integration test starting |
|
Kubernetes integration test status failure |
|
Kubernetes integration test starting |
|
Kubernetes integration test status failure |
|
Kubernetes integration test status failure |
|
Test build #138457 has finished for PR 32515 at commit
|
|
Test build #138461 has finished for PR 32515 at commit
|
|
Ur, @yaooqinn . The R failure looks a little suspicious because it's consistent and relevant. It might be a side-effect in terms of test classes. Could you double-check it? |
The failure proves this works well at the sparkR side, LOL. I changed the mocked function classname to fix this |
sql/core/src/main/scala/org/apache/spark/sql/SparkSessionExtensionsProvider.scala
Outdated
Show resolved
Hide resolved
sql/core/src/main/scala/org/apache/spark/sql/SparkSessionExtensionsProvider.scala
Outdated
Show resolved
Hide resolved
|
Kubernetes integration test starting |
|
Kubernetes integration test status failure |
…sionsProvider.scala Co-authored-by: Hyukjin Kwon <[email protected]>
…sionsProvider.scala Co-authored-by: Hyukjin Kwon <[email protected]>
|
Test build #138484 has finished for PR 32515 at commit
|
|
Kubernetes integration test unable to build dist. exiting with code: 1 |
|
Looks okay to me too |
|
Kubernetes integration test starting |
|
Kubernetes integration test status failure |
|
Kubernetes integration test unable to build dist. exiting with code: 1 |
|
Test build #138482 has finished for PR 32515 at commit
|
|
Thanks for the help ~ @dongjoon-hyun @HyukjinKwon @cloud-fan +1 for myself. merged to master |
|
Test build #138489 has finished for PR 32515 at commit
|
|
Test build #138493 has finished for PR 32515 at commit
|
…ider` trait ### What changes were proposed in this pull request? This PR aims to remove `Unstable` from `SparkSessionExtensionsProvider` trait from Apache Spark 4.1.0. https://github.com/apache/spark/blob/400e2b29caf43b443f2e0c42aee92c4d0e3e0eb7/sql/core/src/main/scala/org/apache/spark/sql/SparkSessionExtensionsProvider.scala#L78-L81 ### Why are the changes needed? Since Apache Spark 3.2.0, we provide `SparkSessionExtensionsProvider` trait without any change to allow third-party developers to provide a resource file that contains default extensions. - #32515 Apache Iceberg has been using this since 0.11.0. - https://iceberg.apache.org/docs/1.7.1/spark-configuration/#sql-extensions > Iceberg 0.11.0 and later add an extension module to Spark to add new SQL commands, like CALL for stored procedures or ALTER TABLE ... WRITE ORDERED BY. Although `SparkSessionExtensions` is an unstable developer API, `SparkSessionExtensionsProvider` trait itself and ServiceLoader framework is stable and it's unlikely for Apache Spark to change this `trait`. https://github.com/apache/spark/blob/400e2b29caf43b443f2e0c42aee92c4d0e3e0eb7/sql/core/src/main/scala/org/apache/spark/sql/SparkSessionExtensions.scala#L106-L109 ### Does this PR introduce _any_ user-facing change? No. ### How was this patch tested? Pass the CIs. ### Was this patch authored or co-authored using generative AI tooling? No. Closes #49780 from dongjoon-hyun/SPARK-51073. Authored-by: Dongjoon Hyun <[email protected]> Signed-off-by: Dongjoon Hyun <[email protected]>
What changes were proposed in this pull request?
In yaooqinn/itachi#8, we had a discussion about the current extension injection for the spark session. We've agreed that the current way is not that convenient for both third-party developers and end-users.
It's much simple if third-party developers can provide a resource file that contains default extensions for Spark to load ahead
Why are the changes needed?
better use experience
Does this PR introduce any user-facing change?
no, dev change
How was this patch tested?
new tests