cornelcreanga opened a new issue, #7240:
URL: https://github.com/apache/datafusion-comet/issues/7240

   ### Describe the bug
   
   With iceberg-spark-runtime 1.12.0 every native Iceberg write falls back, 
logging only:
   
   ```
   Comet cannot accelerate IcebergWriteExec because: executor-side Iceberg 
reflection did not resolve:
   NoSuchMethodException: 
org.apache.iceberg.ManifestFiles.read(org.apache.iceberg.ManifestFile,org.apache.iceberg.io.FileIO)
   ```
   
   Iceberg 1.12.0 removed the public 2-arg overload (javap on 
iceberg-spark-runtime-3.5_2.12):
   
   ```
   1.11.0: public static ManifestReader<DataFile> read(ManifestFile, FileIO)
           public static ManifestReader<DataFile> read(ManifestFile, FileIO, 
Map<Integer, PartitionSpec>)
   1.12.0: public static ManifestReader<DataFile> read(ManifestFile, FileIO, 
Map<Integer, PartitionSpec>)
   ```
   
   Comet resolves the 2-arg form in two places in `IcebergReflection.scala`: 
the executor probe
   (`probeExecutorReflection`, line 1836 on main) and 
`readDataFilesFromManifest` (line 2004). The
   native Iceberg scan still works on 1.12.
   
   ### Steps to reproduce
   
   Any `rewrite_data_files` or `INSERT` into an Iceberg table with 
`spark.comet.iceberg.write.enabled=true`
   and iceberg-spark-runtime 1.12.0 on the classpath. The plan has no 
`CometIcebergWrite`, and the
   WARN above is the only signal.
   
   ### Expected behavior
   
   Native writes work on Iceberg 1.12. The 3-arg `read(manifest, io, 
specsById)` is public on every
   version Comet supports, and passing the table's `specs()` (or a single-entry 
map for the stamped
   `specId`) would work on 1.5.2 through 1.12.
   
   ### Additional context
   
   Comet 1.1.0, Spark 3.5.6. Works on Iceberg 1.11.0. The Spark profiles in 
`spark/pom.xml` pin
   1.5.2 / 1.8.1 / 1.10.0 / 1.11.0, so no CI profile covers 1.12; adding one 
would have caught this.
   Related: #4871, #5308, #5649, #7040.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


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

Reply via email to