override def createAggregationBuffer()

in src/main/scala/org/apache/spark/sql/datasketches/kll/aggregate/KllDoublesSketchAggBuild.scala [127:142]


  override def createAggregationBuffer(): KllDoublesSketch = KllDoublesSketch.newHeapInstance(k)

  override def update(sketch: KllDoublesSketch, input: InternalRow): KllDoublesSketch = {
    val value = dataExpr.eval(input)
    if (value != null) {
      dataExpr.dataType match {
        case DoubleType => sketch.update(value.asInstanceOf[Double])
        case FloatType => sketch.update(value.asInstanceOf[Float].toDouble)
        case IntegerType => sketch.update(value.asInstanceOf[Int].toDouble)
        case LongType => sketch.update(value.asInstanceOf[Long].toDouble)
        case _ => throw new IllegalArgumentException(
          s"Unsupported input type ${dataExpr.dataType.catalogString}")
      }
    }
    sketch
  }