wombatu-kun commented on code in PR #16791:
URL: https://github.com/apache/iceberg/pull/16791#discussion_r4023901929


##########
flink/v2.1/flink/src/main/java/org/apache/iceberg/flink/data/FlinkParquetWriters.java:
##########
@@ -512,33 +512,36 @@ public void write(int repetitionLevel, byte[] bytes) {
   }
 
   private static class ArrayDataWriter<E> extends 
ParquetValueWriters.RepeatedWriter<ArrayData, E> {
-    private final LogicalType elementType;
+    private final ArrayData.ElementGetter elementGetter;
+    private final ElementIterator elementIterator;
 
     private ArrayDataWriter(
         int definitionLevel,
         int repetitionLevel,
         ParquetValueWriter<E> writer,
         LogicalType elementType) {
       super(definitionLevel, repetitionLevel, writer);
-      this.elementType = elementType;
+      this.elementGetter = ArrayData.createElementGetter(elementType);
+      this.elementIterator = new ElementIterator();
     }
 
     @Override
     protected Iterator<E> elements(ArrayData list) {
-      return new ElementIterator<>(list);
+      // The parent writer fully consumes the iterator inside a single write() 
call, so a single
+      // reusable instance avoids allocating an iterator per row.
+      elementIterator.reset(list);
+      return elementIterator;
     }
 
-    private class ElementIterator<E> implements Iterator<E> {
-      private final int size;
-      private final ArrayData list;
-      private final ArrayData.ElementGetter getter;
+    private class ElementIterator implements Iterator<E> {

Review Comment:
   Done e810a51730, in the 2.3 tree.



-- 
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