in src/spark-project/spark-common/src/main/scala/org/apache/spark/sql/SparderTypeUtil.scala [59:85]
def kylinTypeToSparkResultType(dataTp: DataType): org.apache.spark.sql.types.DataType = {
dataTp.getName match {
case tp if tp.startsWith("hllc") => LongType
case tp if tp.startsWith("percentile") => DoubleType
case tp if tp.startsWith("bitmap") => LongType
case "decimal" | "numeric" => DecimalType(dataTp.getPrecision, dataTp.getScale)
case "date" => IntegerType
case "time" => LongType
case "timestamp" => LongType
case "datetime" => LongType
case "tinyint" => ByteType
case "smallint" => ShortType
case "integer" => IntegerType
case "int4" => IntegerType
case "bigint" => LongType
case "long8" => LongType
case "float" => FloatType
case "double" => DoubleType
case tp if tp.startsWith("varchar") => StringType
case tp if tp.startsWith("char") => StringType
case "bitmap" => LongType
case "dim_dc" => LongType
case "boolean" => BooleanType
case "array<string>" => ArrayType(StringType)
case _ => throw new IllegalArgumentException
}
}