rdblue commented on code in PR #13219: URL: https://github.com/apache/iceberg/pull/13219#discussion_r2229660389
########## spark/v4.0/spark/src/main/java/org/apache/iceberg/spark/data/SparkPlannedAvroReader.java: ########## @@ -126,6 +126,11 @@ public ValueReader<?> map(Type partner, Schema map, ValueReader<?> valueReader) return SparkValueReaders.map(SparkValueReaders.strings(), valueReader); } + public ValueReader<?> variant( + Type partner, ValueReader<?> metadataReader, ValueReader<?> valueReader) { + return ValueReaders.variants(); Review Comment: This needs to return `VariantVal`. You can add a Spark reader: ```java private static class VariantReader implements ValueReader<VariantVal> { private static final VariantReader INSTANCE = new VariantReader(); private final ValueReader<ByteBuffer> metadataReader; private final ValueReader<ByteBuffer> valueReader; private VariantReader() { this.metadataReader = ValueReaders.byteBuffers(); this.valueReader = ValueReaders.byteBuffers(); } @Override public VariantVal read(Decoder decoder, Object reuse) throws IOException { byte[] metadata = ByteBuffers.toByteArray(metadataReader.read(decoder, null)); byte[] value = ByteBuffers.toByteArray(valueReader.read(decoder, null)); return new VariantVal(value, metadata); } @Override public void skip(Decoder decoder) throws IOException { metadataReader.skip(decoder); valueReader.skip(decoder); } } ``` -- 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: issues-unsubscr...@iceberg.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org For additional commands, e-mail: issues-h...@iceberg.apache.org