Skip to content
Prev Previous commit
Next Next commit
Optimizes writing low precision decimals
  • Loading branch information
liancheng committed Oct 6, 2015
commit 6fd20f70baa535b1772c1c30a3f651ea673560f2
Original file line number Diff line number Diff line change
Expand Up @@ -197,16 +197,12 @@ private[parquet] class CatalystWriteSupport extends WriteSupport[InternalRow] wi
val numBytes = minBytesForPrecision(precision)

val int32Writer =
(row: SpecializedGetters, ordinal: Int) => {
val unscaledInt = row.getDecimal(ordinal, precision, scale).toUnscaledLong.toInt
recordConsumer.addInteger(unscaledInt)
}
(row: SpecializedGetters, ordinal: Int) =>
recordConsumer.addInteger(row.getLong(ordinal).toInt)

val int64Writer =
(row: SpecializedGetters, ordinal: Int) => {
val unscaledLong = row.getDecimal(ordinal, precision, scale).toUnscaledLong
recordConsumer.addLong(unscaledLong)
}
(row: SpecializedGetters, ordinal: Int) =>
recordConsumer.addLong(row.getLong(ordinal))

val binaryWriterUsingUnscaledLong =
(row: SpecializedGetters, ordinal: Int) => {
Expand Down