def sparkSqlToJavaDriverType()

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()
    }
  }