aboutsummaryrefslogtreecommitdiff
path: root/sql/core/src/main/scala/org/apache/spark/sql/columnar/compression/CompressibleColumnBuilder.scala
diff options
context:
space:
mode:
Diffstat (limited to 'sql/core/src/main/scala/org/apache/spark/sql/columnar/compression/CompressibleColumnBuilder.scala')
-rw-r--r--sql/core/src/main/scala/org/apache/spark/sql/columnar/compression/CompressibleColumnBuilder.scala12
1 files changed, 11 insertions, 1 deletions
diff --git a/sql/core/src/main/scala/org/apache/spark/sql/columnar/compression/CompressibleColumnBuilder.scala b/sql/core/src/main/scala/org/apache/spark/sql/columnar/compression/CompressibleColumnBuilder.scala
index 0f808f68f2..4c6675c3c8 100644
--- a/sql/core/src/main/scala/org/apache/spark/sql/columnar/compression/CompressibleColumnBuilder.scala
+++ b/sql/core/src/main/scala/org/apache/spark/sql/columnar/compression/CompressibleColumnBuilder.scala
@@ -47,7 +47,17 @@ private[sql] trait CompressibleColumnBuilder[T <: NativeType]
import CompressionScheme._
- val compressionEncoders = schemes.filter(_.supports(columnType)).map(_.encoder[T])
+ var compressionEncoders: Seq[Encoder[T]] = _
+
+ abstract override def initialize(initialSize: Int, columnName: String, useCompression: Boolean) {
+ compressionEncoders =
+ if (useCompression) {
+ schemes.filter(_.supports(columnType)).map(_.encoder[T])
+ } else {
+ Seq(PassThrough.encoder)
+ }
+ super.initialize(initialSize, columnName, useCompression)
+ }
protected def isWorthCompressing(encoder: Encoder[T]) = {
encoder.compressionRatio < 0.8