1717 * under the License.
1818 */
1919
20- String sparkMajorVersion = ' 4.0 '
20+ String sparkMajorVersion = ' 4.1 '
2121String scalaVersion = ' 2.13'
2222
2323JavaVersion javaVersion = JavaVersion . current()
2424Boolean javaVersionSupported = javaVersion == JavaVersion . VERSION_17 || javaVersion == JavaVersion . VERSION_21
2525if (! javaVersionSupported) {
26- logger. warn(" Skip Spark 4.0 build which requires JDK 17 or 21 but was executed with JDK " + javaVersion)
26+ logger. warn(" Skip Spark 4.1 build which requires JDK 17 or 21 but was executed with JDK " + javaVersion)
2727}
2828
2929def sparkProjects = [
@@ -51,6 +51,14 @@ project(":iceberg-spark:iceberg-spark-${sparkMajorVersion}_${scalaVersion}") {
5151 apply plugin : ' scala'
5252 apply plugin : ' com.github.alisiikh.scalastyle'
5353
54+ // Set target to JDK17 for Spark 4.1 to fix following error
55+ // "spark/v4.1/spark/src/main/scala/org/apache/spark/sql/stats/ThetaSketchAgg.scala:52:12: Class java.lang.Record not found"
56+ tasks. withType(ScalaCompile . class) {
57+ sourceCompatibility = " 17"
58+ targetCompatibility = " 17"
59+ scalaCompileOptions. additionalParameters. add(" -release:17" )
60+ }
61+
5462 sourceSets {
5563 main {
5664 scala. srcDirs = [' src/main/scala' , ' src/main/java' ]
@@ -74,7 +82,7 @@ project(":iceberg-spark:iceberg-spark-${sparkMajorVersion}_${scalaVersion}") {
7482
7583 compileOnly libs. errorprone. annotations
7684 compileOnly libs. avro. avro
77- compileOnly(" org.apache.spark:spark-hive_${ scalaVersion} :${ libs.versions.spark40 .get()} " ) {
85+ compileOnly(" org.apache.spark:spark-hive_${ scalaVersion} :${ libs.versions.spark41 .get()} " ) {
7886 exclude group : ' org.apache.avro' , module : ' avro'
7987 exclude group : ' org.apache.arrow'
8088 exclude group : ' org.apache.parquet'
@@ -84,7 +92,8 @@ project(":iceberg-spark:iceberg-spark-${sparkMajorVersion}_${scalaVersion}") {
8492 exclude group : ' org.roaringbitmap'
8593 }
8694
87- compileOnly " org.apache.datafusion:comet-spark-spark${ sparkMajorVersion} _2.13:${ libs.versions.comet.get()} "
95+ // TODO: datafusion-comet Spark 4.1 support
96+ compileOnly " org.apache.datafusion:comet-spark-spark4.0_2.13:${ libs.versions.comet.get()} "
8897
8998 implementation libs. parquet. column
9099 implementation libs. parquet. hadoop
@@ -165,7 +174,7 @@ project(":iceberg-spark:iceberg-spark-extensions-${sparkMajorVersion}_${scalaVer
165174 compileOnly project(' :iceberg-core' )
166175 compileOnly project(' :iceberg-common' )
167176 compileOnly project(" :iceberg-spark:iceberg-spark-${ sparkMajorVersion} _${ scalaVersion} " )
168- compileOnly(" org.apache.spark:spark-hive_${ scalaVersion} :${ libs.versions.spark40 .get()} " ) {
177+ compileOnly(" org.apache.spark:spark-hive_${ scalaVersion} :${ libs.versions.spark41 .get()} " ) {
169178 exclude group : ' org.apache.avro' , module : ' avro'
170179 exclude group : ' org.apache.arrow'
171180 exclude group : ' org.apache.parquet'
@@ -194,7 +203,8 @@ project(":iceberg-spark:iceberg-spark-extensions-${sparkMajorVersion}_${scalaVer
194203 testImplementation libs. avro. avro
195204 testImplementation libs. parquet. hadoop
196205 testImplementation libs. awaitility
197- testImplementation " org.apache.datafusion:comet-spark-spark${ sparkMajorVersion} _2.13:${ libs.versions.comet.get()} "
206+ // TODO: datafusion-comet Spark 4.1 support
207+ testImplementation " org.apache.datafusion:comet-spark-spark4.0_2.13:${ libs.versions.comet.get()} "
198208 testImplementation(testFixtures(project(' :iceberg-parquet' )))
199209
200210 // Required because we remove antlr plugin dependencies from the compile configuration, see note above
@@ -267,7 +277,7 @@ project(":iceberg-spark:iceberg-spark-runtime-${sparkMajorVersion}_${scalaVersio
267277 }
268278
269279 integrationImplementation " org.scala-lang.modules:scala-collection-compat_${ scalaVersion} :${ libs.versions.scala.collection.compat.get()} "
270- integrationImplementation " org.apache.spark:spark-hive_${ scalaVersion} :${ libs.versions.spark40 .get()} "
280+ integrationImplementation " org.apache.spark:spark-hive_${ scalaVersion} :${ libs.versions.spark41 .get()} "
271281 integrationImplementation libs. junit. jupiter
272282 integrationImplementation libs. junit. platform. launcher
273283 integrationImplementation libs. slf4j. simple
0 commit comments