From 85e4ae14b7f131ae05717499f0d223d85c25d410 Mon Sep 17 00:00:00 2001 From: Kuhu Shukla Date: Tue, 21 Dec 2021 08:54:47 -0600 Subject: [PATCH] Add comment for Uint64 --- .../scala/com/nvidia/spark/rapids/GpuParquetScanBase.scala | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sql-plugin/src/main/scala/com/nvidia/spark/rapids/GpuParquetScanBase.scala b/sql-plugin/src/main/scala/com/nvidia/spark/rapids/GpuParquetScanBase.scala index e9a70c67d34..c1391694cee 100644 --- a/sql-plugin/src/main/scala/com/nvidia/spark/rapids/GpuParquetScanBase.scala +++ b/sql-plugin/src/main/scala/com/nvidia/spark/rapids/GpuParquetScanBase.scala @@ -797,6 +797,10 @@ trait ParquetPartitionReaderBase extends Logging with Arm with ScanWithMetrics } def needDecimalCast(cv: ColumnView, dt: DataType): Boolean = { + // UINT64 is casted to Decimal(20,0) by Spark to accommodate + // the largest possible values this type can take. Other Unsigned data types are converted to + // basic types like LongType, this is analogous to that except we spill over to large + // decimal/ints. cv.getType.isDecimalType && !GpuColumnVector.getNonNestedRapidsType(dt).equals(cv.getType()) || cv.getType.equals(DType.UINT64) }