|
17 | 17 | * under the License. |
18 | 18 | */ |
19 | 19 |
|
20 | | -String sparkMajorVersion = '4.0' |
| 20 | +String sparkMajorVersion = '4.1' |
21 | 21 | String scalaVersion = '2.13' |
22 | 22 |
|
23 | 23 | JavaVersion javaVersion = JavaVersion.current() |
24 | 24 | if (javaVersion != JavaVersion.VERSION_17 && javaVersion != JavaVersion.VERSION_21) { |
25 | | - throw new GradleException("Spark 4.0 build requires JDK 17 or 21 but was executed with JDK " + javaVersion) |
| 25 | + throw new GradleException("Spark 4.1 build requires JDK 17 or 21 but was executed with JDK " + javaVersion) |
| 26 | +} |
| 27 | + |
| 28 | +// Set target to JDK17 for Spark 4.1 to fix following error |
| 29 | +// "spark/v4.1/spark/src/main/scala/org/apache/spark/sql/stats/ThetaSketchAgg.scala:52:12: Class java.lang.Record not found" |
| 30 | +plugins.withType(ScalaPlugin.class) { |
| 31 | + tasks.withType(ScalaCompile.class) { |
| 32 | + scalaCompileOptions.keepAliveMode.set(KeepAliveMode.DAEMON) |
| 33 | + sourceCompatibility = "17" |
| 34 | + targetCompatibility = "17" |
| 35 | + scalaCompileOptions.additionalParameters.add("-release:17") |
| 36 | + } |
26 | 37 | } |
27 | 38 |
|
28 | 39 | def sparkProjects = [ |
@@ -69,8 +80,9 @@ project(":iceberg-spark:iceberg-spark-${sparkMajorVersion}_${scalaVersion}") { |
69 | 80 | implementation("org.apache.datasketches:datasketches-java:${libs.versions.datasketches.get()}") |
70 | 81 |
|
71 | 82 | compileOnly libs.errorprone.annotations |
| 83 | + compileOnly libs.jetbrain.annotations |
72 | 84 | compileOnly libs.avro.avro |
73 | | - compileOnly("org.apache.spark:spark-hive_${scalaVersion}:${libs.versions.spark40.get()}") { |
| 85 | + compileOnly("org.apache.spark:spark-hive_${scalaVersion}:${libs.versions.spark41.get()}") { |
74 | 86 | exclude group: 'org.apache.avro', module: 'avro' |
75 | 87 | exclude group: 'org.apache.arrow' |
76 | 88 | exclude group: 'org.apache.parquet' |
|
0 commit comments