This is an automated email from the ASF dual-hosted git repository.

dongjoon-hyun pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/spark-kubernetes-operator.git


The following commit(s) were added to refs/heads/main by this push:
     new 31e9e6f  [SPARK-56985] Upgrade `Iceberg` example to use Iceberg 1.11.0
31e9e6f is described below

commit 31e9e6f56ad025df9cdb51cdf3fc945a97ea337b
Author: Dongjoon Hyun <[email protected]>
AuthorDate: Thu May 21 09:03:38 2026 -0700

    [SPARK-56985] Upgrade `Iceberg` example to use Iceberg 1.11.0
    
    ### What changes were proposed in this pull request?
    
    This PR aims to upgrade `Iceberg` to 1.11.0 in the 
`spark-connect-server-iceberg.yaml` example.
    
    ### Why are the changes needed?
    
    To use the latest Iceberg release.
    - https://iceberg.apache.org/releases/#1110-release
    - https://github.com/apache/iceberg/releases/tag/apache-iceberg-1.11.0 
(2026-05-19)
      - https://github.com/apache/iceberg/pull/14400
      - https://github.com/apache/iceberg/pull/14099
      - https://github.com/apache/iceberg/pull/14155
    
    ### Does this PR introduce _any_ user-facing change?
    
    No.
    
    ### How was this patch tested?
    
    Manual review.
    
    ```
    $ kubectl apply -f examples/spark-connect-server-iceberg.yaml
    sparkapplication.spark.apache.org/spark-connect-server-iceberg created
    
    $ kubectl get sparkapp
    NAME                           AGE   CURRENT STATE
    spark-connect-server-iceberg   46s   RunningHealthy
    
    $ kybectl get pod
    NAME                                         READY   STATUS    RESTARTS     
 AGE
    spark-connect-server-iceberg-0-driver        1/1     Running   0            
 47s
    spark-connect-server-iceberg-exec-1          1/1     Running   0            
 11s
    spark-connect-server-iceberg-exec-2          1/1     Running   0            
 11s
    spark-connect-server-iceberg-exec-3          1/1     Running   0            
 11s
    spark-kubernetes-operator-86bfb88655-w5fs8   1/1     Running   7 (42h ago)  
 6d19h
    
    $ kubectl logs -f spark-connect-server-iceberg-0-driver
    ...
    org.apache.iceberg#iceberg-spark-runtime-4.0_2.13 added as a dependency
    ...
            found org.apache.iceberg#iceberg-spark-runtime-4.0_2.13;1.11.0 in 
central
    ...
    downloading 
https://repo1.maven.org/maven2/org/apache/iceberg/iceberg-spark-runtime-4.0_2.13/1.11.0/iceberg-spark-runtime-4.0_2.13-1.11.0.jar
 ...
            [SUCCESSFUL ] 
org.apache.iceberg#iceberg-spark-runtime-4.0_2.13;1.11.0!iceberg-spark-runtime-4.0_2.13.jar
 (834ms)
    ...
            org.apache.iceberg#iceberg-spark-runtime-4.0_2.13;1.11.0 from 
central in [default]
    ...
    Files 
file:///tmp/.ivy2.5.2/jars/org.apache.iceberg_iceberg-spark-runtime-4.0_2.13-1.11.0.jar
 from 
/tmp/.ivy2.5.2/jars/org.apache.iceberg_iceberg-spark-runtime-4.0_2.13-1.11.0.jar
 to 
/opt/spark/work-dir/org.apache.iceberg_iceberg-spark-runtime-4.0_2.13-1.11.0.jar
    ...
    26/05/21 14:37:11 INFO SparkConnectServer: Starting Spark session.
    26/05/21 14:37:11 INFO SparkContext: Running Spark version 4.0.2
    26/05/21 14:37:11 INFO SparkContext: OS info Linux, 6.6.119-0-virt, aarch64
    26/05/21 14:37:11 INFO SparkContext: Java version 17.0.17
    ...
    26/05/21 14:37:17 INFO Utils: Successfully started service 
'org.apache.spark.sql.connect.service.SparkConnectService$' on port 15002.
    26/05/21 14:37:17 INFO SparkConnectServer: Spark Connect server started at: 
0:0:0:0:0:0:0:0:15002
    ```
    
    ```
    $ kubectl port-forward spark-connect-server-iceberg-0-driver 15002
    ```
    
    ```
    $ bin/spark-connect-shell --remote sc://localhost:15002
    ...
    Welcome to
          ____              __
         / __/__  ___ _____/ /__
        _\ \/ _ \/ _ `/ __/  '_/
       /___/ .__/\_,_/_/ /_/\_\   version 4.0.2
          /_/
    
    Type in expressions to have them evaluated.
    Spark connect server version 4.0.2.
    Spark session available as 'spark'.
    
    scala>
    sql("""CREATE TABLE taxis(vendor_id bigint, trip_id bigint, trip_distance 
float, fare_amount double, store_and_fwd_flag string) PARTITIONED BY 
(vendor_id);""").show()
    Using Spark's default log4j profile: 
org/apache/spark/log4j2-defaults.properties
    ++
    ||
    ++
    ++
    
    scala>
    sql("""INSERT INTO taxis VALUES (1, 1000371, 1.8, 15.32, 'N'), (2, 1000372, 
2.5, 22.15, 'N'), (2, 1000373, 0.9, 9.01, 'N'), (1, 1000374, 8.4, 42.13, 
'Y');""").show()
    ++
    ||
    ++
    ++
    
    scala> sql("SELECT * FROM taxis").show(false)
    +---------+-------+-------------+-----------+------------------+
    |vendor_id|trip_id|trip_distance|fare_amount|store_and_fwd_flag|
    +---------+-------+-------------+-----------+------------------+
    |1        |1000374|8.4          |42.13      |Y                 |
    |1        |1000371|1.8          |15.32      |N                 |
    |2        |1000373|0.9          |9.01       |N                 |
    |2        |1000372|2.5          |22.15      |N                 |
    +---------+-------+-------------+-----------+------------------+
    
    scala> sql("SELECT * FROM taxis.history").show(false)
    +-----------------------+-------------------+---------+-------------------+
    |made_current_at        |snapshot_id        |parent_id|is_current_ancestor|
    +-----------------------+-------------------+---------+-------------------+
    |2026-05-21 14:55:46.629|4314466511351517368|NULL     |true               |
    +-----------------------+-------------------+---------+-------------------+
    
    scala> sql("SELECT * FROM taxis VERSION AS OF 
4314466511351517368").show(false)
    +---------+-------+-------------+-----------+------------------+
    |vendor_id|trip_id|trip_distance|fare_amount|store_and_fwd_flag|
    +---------+-------+-------------+-----------+------------------+
    |1        |1000374|8.4          |42.13      |Y                 |
    |1        |1000371|1.8          |15.32      |N                 |
    |2        |1000373|0.9          |9.01       |N                 |
    |2        |1000372|2.5          |22.15      |N                 |
    +---------+-------+-------------+-----------+------------------+
    ```
    
    ### Was this patch authored or co-authored using generative AI tooling?
    
    Generated-by: Claude Opus 4.7
    
    Closes #681 from dongjoon-hyun/SPARK-56985.
    
    Authored-by: Dongjoon Hyun <[email protected]>
    Signed-off-by: Dongjoon Hyun <[email protected]>
---
 examples/spark-connect-server-iceberg.yaml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/examples/spark-connect-server-iceberg.yaml 
b/examples/spark-connect-server-iceberg.yaml
index b6d0e88..657a1e8 100644
--- a/examples/spark-connect-server-iceberg.yaml
+++ b/examples/spark-connect-server-iceberg.yaml
@@ -28,7 +28,7 @@ spec:
     spark.hadoop.fs.s3a.path.style.access: "true"
     spark.hadoop.fs.s3a.secret.key: "test"
     spark.jars.ivy: "/tmp/.ivy2.5.2"
-    spark.jars.packages: 
"org.apache.hadoop:hadoop-aws:3.4.1,org.apache.iceberg:iceberg-spark-runtime-4.0_2.13:1.10.1"
+    spark.jars.packages: 
"org.apache.hadoop:hadoop-aws:3.4.1,org.apache.iceberg:iceberg-spark-runtime-4.0_2.13:1.11.0"
     spark.kubernetes.authenticate.driver.serviceAccountName: "spark"
     spark.kubernetes.container.image: "apache/spark:4.0.2"
     spark.kubernetes.executor.podNamePrefix: "spark-connect-server-iceberg"


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to