diff --git a/sql/core/src/main/java/org/apache/spark/sql/execution/datasources/parquet/VectorizedColumnReader.java b/sql/core/src/main/java/org/apache/spark/sql/execution/datasources/parquet/VectorizedColumnReader.java index 13225b2f1ebb..2214c169d6bc 100644 --- a/sql/core/src/main/java/org/apache/spark/sql/execution/datasources/parquet/VectorizedColumnReader.java +++ b/sql/core/src/main/java/org/apache/spark/sql/execution/datasources/parquet/VectorizedColumnReader.java @@ -462,15 +462,22 @@ private void readLongBatch(int rowId, int num, WritableColumnVector column) thro num, column, rowId, maxDefLevel, (VectorizedValuesReader) dataColumn); } } else if (originalType == OriginalType.TIMESTAMP_MILLIS) { - for (int i = 0; i < num; i++) { - if (defColumn.readInteger() == maxDefLevel) { - long micros = DateTimeUtils.millisToMicros(dataColumn.readLong()); - if (rebaseDateTime) { - micros = DateTimeUtils.rebaseJulianToGregorianMicros(micros); + if (rebaseDateTime) { + for (int i = 0; i < num; i++) { + if (defColumn.readInteger() == maxDefLevel) { + long micros = DateTimeUtils.millisToMicros(dataColumn.readLong()); + column.putLong(rowId + i, DateTimeUtils.rebaseJulianToGregorianMicros(micros)); + } else { + column.putNull(rowId + i); + } + } + } else { + for (int i = 0; i < num; i++) { + if (defColumn.readInteger() == maxDefLevel) { + column.putLong(rowId + i, DateTimeUtils.millisToMicros(dataColumn.readLong())); + } else { + column.putNull(rowId + i); } - column.putLong(rowId + i, micros); - } else { - column.putNull(rowId + i); } } } else {