@Override
    public double readDouble() {
      HiveDecimal hiveDecimal = HiveDecimal.create(valuesReader.readInteger(), scale);
      hiveDecimalWritable.set(hiveDecimal);
      return (super.validatedDouble(hiveDecimalWritable.doubleValue(), serdeConstants.DOUBLE_TYPE_NAME));
    }
The reader who reads from the underlying decimal value which is stored in an INT32 physical type.

The data is read as INT32 from the reader treated as a decimal, then validated, converted
and returned as per the type defined in HMS.
ql/src/java/org/apache/hadoop/hive/ql/io/parquet/vector/ParquetDataColumnReaderFactory.java