in connector/src/main/scala/com/datastax/spark/connector/datasource/CassandraSourceUtil.scala [125:156]
def sparkSqlToJavaDriverType(
dataType: CatalystType,
protocolVersion: ProtocolVersion = ProtocolVersion.DEFAULT): DataType = {
def unsupportedType() = throw new IllegalArgumentException(s"Unsupported type: $dataType")
val pvGt4 = (protocolVersion.getCode >= ProtocolVersion.V4.getCode)
dataType match {
case ByteType => if (pvGt4) TINYINT else INT
case ShortType => if (pvGt4) SMALLINT else INT
case IntegerType => INT
case LongType => BIGINT
case SparkSqlFloatType => FLOAT
case SparkSqlDoubleType => DOUBLE
case StringType => TEXT
case BinaryType => BLOB
case SparkSqlBooleanType => BOOLEAN
case SparkSqlTimestampType => TIMESTAMP
case SparkSqlDateType => if (pvGt4) DATE else TIMESTAMP
case SparkSqlDecimalType() => DECIMAL
case ArrayType(sparkSqlElementType, containsNull) =>
val argType = sparkSqlToJavaDriverType(sparkSqlElementType)
DataTypes.listOf(argType)
case SparkSqlMapType(sparkSqlKeyType, sparkSqlValueType, containsNull) =>
val keyType = sparkSqlToJavaDriverType(sparkSqlKeyType)
val valueType = sparkSqlToJavaDriverType(sparkSqlValueType)
DataTypes.mapOf(keyType, valueType)
case _ =>
unsupportedType()
}
}