diff --git a/data/src/main/java/org/apache/iceberg/data/parquet/GenericParquetReaders.java b/data/src/main/java/org/apache/iceberg/data/parquet/GenericParquetReaders.java index acb35ed29ca6..9d95e7ea243c 100644 --- a/data/src/main/java/org/apache/iceberg/data/parquet/GenericParquetReaders.java +++ b/data/src/main/java/org/apache/iceberg/data/parquet/GenericParquetReaders.java @@ -245,6 +245,8 @@ public ParquetValueReader primitive(org.apache.iceberg.types.Type.PrimitiveTy } case TIME_MICROS: return new TimeReader(desc); + case TIME_MILLIS: + return new TimeMillisReader(desc); case DECIMAL: DecimalMetadata decimal = primitive.getDecimalMetadata(); switch (primitive.getPrimitiveTypeName()) { @@ -356,6 +358,17 @@ public OffsetDateTime read(OffsetDateTime reuse) { } } + private static class TimeMillisReader extends PrimitiveReader { + private TimeMillisReader(ColumnDescriptor desc) { + super(desc); + } + + @Override + public LocalTime read(LocalTime reuse) { + return LocalTime.ofNanoOfDay(column.nextLong() * 1000000L); + } + } + private static class TimeReader extends PrimitiveReader { private TimeReader(ColumnDescriptor desc) { super(desc);