From f53c61d25d91f9d85be7253ca1efe1c08bf6dc15 Mon Sep 17 00:00:00 2001 From: Manu Zhang Date: Fri, 20 Mar 2026 14:29:14 +0800 Subject: [PATCH] Spark 4.1: Fix Partition info not displayed in job description for RewritePositionDeleteFilesSparkAction --- .../actions/BinPackRewritePositionDeletePlanner.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/org/apache/iceberg/actions/BinPackRewritePositionDeletePlanner.java b/core/src/main/java/org/apache/iceberg/actions/BinPackRewritePositionDeletePlanner.java index 8e080ee30b76..458810f87c3f 100644 --- a/core/src/main/java/org/apache/iceberg/actions/BinPackRewritePositionDeletePlanner.java +++ b/core/src/main/java/org/apache/iceberg/actions/BinPackRewritePositionDeletePlanner.java @@ -27,6 +27,7 @@ import org.apache.iceberg.DeleteFile; import org.apache.iceberg.MetadataTableType; import org.apache.iceberg.MetadataTableUtils; +import org.apache.iceberg.PartitionData; import org.apache.iceberg.Partitioning; import org.apache.iceberg.PositionDeletesScanTask; import org.apache.iceberg.PositionDeletesTable; @@ -187,18 +188,20 @@ private StructLikeMap> groupByPartition( Types.StructType partitionType, Iterable tasks) { StructLikeMap> filesByPartition = StructLikeMap.create(partitionType); + PartitionData partitionKeyTemplate = new PartitionData(partitionType); for (PositionDeletesScanTask task : tasks) { StructLike coerced = PartitionUtil.coercePartition(partitionType, task.spec(), task.partition()); + StructLike partitionKey = partitionKeyTemplate.copyFor(coerced); - List partitionTasks = filesByPartition.get(coerced); + List partitionTasks = filesByPartition.get(partitionKey); if (partitionTasks == null) { partitionTasks = Lists.newArrayList(); } partitionTasks.add(task); - filesByPartition.put(coerced, partitionTasks); + filesByPartition.put(partitionKey, partitionTasks); } return filesByPartition;