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

The data is read as INT64 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