All Downloads are FREE. Search and download functionalities are using the official Maven repository.

tech.ytsaurus.spyt.serializers.InternalRowDeserializer.scala Maven / Gradle / Ivy

package tech.ytsaurus.spyt.serializers

import org.apache.spark.sql.catalyst.InternalRow
import org.apache.spark.sql.catalyst.expressions.GenericInternalRow
import org.apache.spark.sql.sources.Filter
import org.apache.spark.sql.types._

import scala.collection.mutable


class InternalRowDeserializer(schema: StructType) extends WireDeserializer[InternalRow](schema) {
  override def onCompleteRow(): InternalRow = new GenericInternalRow(_values)
}

object InternalRowDeserializer {
  private val deserializers: ThreadLocal[mutable.Map[StructType, InternalRowDeserializer]] =
    ThreadLocal.withInitial(() => mutable.ListMap.empty)

  def getOrCreate(schema: StructType, filters: Array[Filter] = Array.empty): InternalRowDeserializer = {
    deserializers.get().getOrElseUpdate(schema, new InternalRowDeserializer(schema))
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy