Skip to content

Commit 1db4a96

Browse files
manuzhangcodex
andcommitted
Spark: Initial support for 4.2.0
Add Spark 4.2 module support and include follow-up compatibility fixes for Spark 4.2 view command handling and test expectations. Co-authored-by: Codex <codex@openai.com>
1 parent c9864eb commit 1db4a96

78 files changed

Lines changed: 864 additions & 840 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/spark-ci.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ jobs:
8282
max-parallel: 20
8383
matrix:
8484
jvm: [17, 21]
85-
spark: ['3.5', '4.0', '4.1']
85+
spark: ['3.5', '4.0', '4.1', '4.2']
8686
scala: ['2.12', '2.13']
8787
# Split iceberg-spark (core) from iceberg-spark-extensions/-runtime
8888
# so they run as concurrent jobs rather than serially in one job.
@@ -94,6 +94,8 @@ jobs:
9494
scala: '2.12'
9595
- spark: '4.1'
9696
scala: '2.12'
97+
- spark: '4.2'
98+
scala: '2.12'
9799
env:
98100
SPARK_LOCAL_IP: localhost
99101
steps:

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ spark/v4.0/spark/benchmark/*
3737
spark/v4.0/spark-extensions/benchmark/*
3838
spark/v4.1/spark/benchmark/*
3939
spark/v4.1/spark-extensions/benchmark/*
40+
spark/v4.2/spark/benchmark/*
41+
spark/v4.2/spark-extensions/benchmark/*
4042
*/benchmark/*
4143

4244
__pycache__/

build.gradle

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,9 @@ allprojects {
117117
repositories {
118118
mavenCentral()
119119
mavenLocal()
120+
maven {
121+
url "https://repository.apache.org/content/repositories/orgapachespark-1523/"
122+
}
120123
}
121124
}
122125

dev/stage-binaries.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,13 @@
2020

2121
SCALA_VERSION=2.12
2222
FLINK_VERSIONS=1.20,2.0,2.1
23-
SPARK_VERSIONS=3.5,4.0,4.1
23+
SPARK_VERSIONS=3.5,4.0,4.1,4.2
2424
KAFKA_VERSIONS=3
2525

2626
./gradlew -Prelease -DscalaVersion=$SCALA_VERSION -DflinkVersions=$FLINK_VERSIONS -DsparkVersions=$SPARK_VERSIONS -DkafkaVersions=$KAFKA_VERSIONS publishApachePublicationToMavenRepository --no-parallel --no-configuration-cache
2727

2828
# Also publish Scala 2.13 Artifacts for versions that support it.
2929
# Flink does not yet support 2.13 (and is largely dropping a user-facing dependency on Scala). Hive doesn't need a Scala specification.
3030
./gradlew -Prelease -DscalaVersion=2.13 -DsparkVersions=3.5 :iceberg-spark:iceberg-spark-3.5_2.13:publishApachePublicationToMavenRepository :iceberg-spark:iceberg-spark-extensions-3.5_2.13:publishApachePublicationToMavenRepository :iceberg-spark:iceberg-spark-runtime-3.5_2.13:publishApachePublicationToMavenRepository --no-parallel --no-configuration-cache
31-
# Spark 4.0 only supports Scala 2.13. no need to specify scalaVersion
31+
# Spark 4.0+ only supports Scala 2.13. no need to specify scalaVersion
3232

gradle.properties

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ jmhJsonOutputPath=build/reports/jmh/results.json
1818
jmhIncludeRegex=.*
1919
systemProp.defaultFlinkVersions=2.1
2020
systemProp.knownFlinkVersions=1.20,2.0,2.1
21-
systemProp.defaultSparkVersions=4.1
22-
systemProp.knownSparkVersions=3.5,4.0,4.1
21+
systemProp.defaultSparkVersions=4.2
22+
systemProp.knownSparkVersions=3.5,4.0,4.1,4.2
2323
systemProp.defaultKafkaVersions=3
2424
systemProp.knownKafkaVersions=3
2525
systemProp.defaultScalaVersion=2.12

gradle/libs.versions.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ snowflake-jdbc = "3.28.0"
8989
spark35 = "3.5.8"
9090
spark40 = "4.0.3"
9191
spark41 = "4.1.2"
92+
spark42 = "4.2.0"
9293
sqlite-jdbc = "3.53.2.0"
9394
testcontainers = "2.0.5"
9495
tez08 = { strictly = "0.8.4"} # see rich version usage explanation above

jmh.gradle

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,11 @@ if (sparkVersions.contains("4.1")) {
5353
jmhProjects.add(project(":iceberg-spark:iceberg-spark-extensions-4.1_2.13"))
5454
}
5555

56+
if (sparkVersions.contains("4.2")) {
57+
jmhProjects.add(project(":iceberg-spark:iceberg-spark-4.2_2.13"))
58+
jmhProjects.add(project(":iceberg-spark:iceberg-spark-extensions-4.2_2.13"))
59+
}
60+
5661
configure(jmhProjects) {
5762
apply plugin: 'me.champeau.jmh'
5863
apply plugin: 'io.morethan.jmhreport'

settings.gradle

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,18 @@ if (sparkVersions.contains("4.1")) {
175175
project(":iceberg-spark:spark-runtime-4.1_2.13").name = "iceberg-spark-runtime-4.1_2.13"
176176
}
177177

178+
if (sparkVersions.contains("4.2")) {
179+
include ":iceberg-spark:spark-4.2_2.13"
180+
include ":iceberg-spark:spark-extensions-4.2_2.13"
181+
include ":iceberg-spark:spark-runtime-4.2_2.13"
182+
project(":iceberg-spark:spark-4.2_2.13").projectDir = file('spark/v4.2/spark')
183+
project(":iceberg-spark:spark-4.2_2.13").name = "iceberg-spark-4.2_2.13"
184+
project(":iceberg-spark:spark-extensions-4.2_2.13").projectDir = file('spark/v4.2/spark-extensions')
185+
project(":iceberg-spark:spark-extensions-4.2_2.13").name = "iceberg-spark-extensions-4.2_2.13"
186+
project(":iceberg-spark:spark-runtime-4.2_2.13").projectDir = file('spark/v4.2/spark-runtime')
187+
project(":iceberg-spark:spark-runtime-4.2_2.13").name = "iceberg-spark-runtime-4.2_2.13"
188+
}
189+
178190
if (kafkaVersions.contains("3")) {
179191
include 'kafka-connect'
180192
project(':kafka-connect').name = 'iceberg-kafka-connect'

spark/build.gradle

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,3 +31,7 @@ if (sparkVersions.contains("4.0")) {
3131
if (sparkVersions.contains("4.1")) {
3232
apply from: file("$projectDir/v4.1/build.gradle")
3333
}
34+
35+
if (sparkVersions.contains("4.2")) {
36+
apply from: file("$projectDir/v4.2/build.gradle")
37+
}

spark/v4.1/spark-runtime/runtime-deps.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
com.fasterxml.jackson.core:jackson-annotations:2.21
1+
com.fasterxml.jackson.core:jackson-annotations:2.22
22
com.fasterxml.jackson.core:jackson-core:2.15
33
com.fasterxml.jackson.core:jackson-databind:2.15
4-
com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.21
4+
com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.22
55
com.github.ben-manes.caffeine:caffeine:2.9
66
com.google.errorprone:error_prone_annotations:2.10
77
com.google.flatbuffers:flatbuffers-java:23.5

0 commit comments

Comments
 (0)