gengliangwang commented on a change in pull request #34495:
URL: https://github.com/apache/spark/pull/34495#discussion_r746623148
##########
File path:
sql/core/src/main/java/org/apache/spark/sql/execution/datasources/parquet/ParquetVectorUpdaterFactory.java
##########
@@ -179,6 +183,21 @@ boolean
isTimestampTypeMatched(LogicalTypeAnnotation.TimeUnit unit) {
((TimestampLogicalTypeAnnotation) logicalTypeAnnotation).getUnit() ==
unit;
}
+ void validateTimestampType(DataType sparkType) {
+ assert(logicalTypeAnnotation instanceof TimestampLogicalTypeAnnotation);
+ // Throw an exception if the Parquet type is TimestampLTZ and the Catalyst
type is TimestampNTZ.
+ // This is to avoid mistakes in reading the timestamp values.
+ if (((TimestampLogicalTypeAnnotation)
logicalTypeAnnotation).isAdjustedToUTC() &&
+ sparkType == DataTypes.TimestampNTZType) {
+ convertErrorForTimestampNTZ("int64 time(" + logicalTypeAnnotation + ")");
+ }
+ }
+
+ void convertErrorForTimestampNTZ(String parquetType) {
+ throw new RuntimeException("Unable to create Parquet converter for data
type " +
+ DataTypes.TimestampNTZType.json() + " whose Parquet type is " +
parquetType);
Review comment:
I prefer keeping "timestamp_ntz", which is the keyword we used in
DDL/literals..
##########
File path:
sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/parquet/ParquetRowConverter.scala
##########
@@ -370,6 +370,31 @@ private[parquet] class ParquetRowConverter(
}
}
+ // The converter doesn't support the TimestampLTZ Parquet type and
TimestampNTZ Catalyst type.
+ // This is to avoid mistakes in reading the timestamp values.
+ case TimestampNTZType
+ if parquetType.asPrimitiveType().getPrimitiveTypeName == INT64 &&
+
parquetType.getLogicalTypeAnnotation.isInstanceOf[TimestampLogicalTypeAnnotation]
&&
+ !parquetType.getLogicalTypeAnnotation
+ .asInstanceOf[TimestampLogicalTypeAnnotation].isAdjustedToUTC &&
+ parquetType.getLogicalTypeAnnotation
+ .asInstanceOf[TimestampLogicalTypeAnnotation].getUnit ==
TimeUnit.MICROS =>
Review comment:
ok, updated
--
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]