stevenzwu commented on a change in pull request #2905:
URL: https://github.com/apache/iceberg/pull/2905#discussion_r701985214



##########
File path: 
flink/src/main/java/org/apache/iceberg/flink/source/FlinkInputFormat.java
##########
@@ -42,21 +42,22 @@
   private static final long serialVersionUID = 1L;
 
   private final TableLoader tableLoader;
-  private final Schema tableSchema;
   private final FileIO io;
   private final EncryptionManager encryption;
   private final ScanContext context;
+  private final RowDataFileReader rowDataReader;
 
-  private transient RowDataIterator iterator;
+  private transient DataIterator<RowData> iterator;
   private transient long currentReadCount = 0L;
 
   FlinkInputFormat(TableLoader tableLoader, Schema tableSchema, FileIO io, 
EncryptionManager encryption,
                    ScanContext context) {
     this.tableLoader = tableLoader;
-    this.tableSchema = tableSchema;
     this.io = io;
     this.encryption = encryption;
     this.context = context;
+    this.rowDataReader = new RowDataFileReader(tableSchema,

Review comment:
       It is correct that in iceberg-flink, there is no other impl of 
`FileScanTaskReader` other than `RowDataFileScanTaskReader`. But at Netflix and 
Apple, we use Avro schema for the Kafka data and deserialize bytes into Avro 
Record. For Iceberg source (like for backfill or bootstrap), we also want to 
deserialize Iceberg data into Avro Record so that app code deals with the same 
data type no matter consuming from Kafka or Iceberg. Hence we will plug in 
`AvroGenericRecordFileScanTaskReader`. That is one of the motivation of this 
refactoring. 




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