Spark (ScalaDoc) : https://spark.apache.org/docs/3.2.0/api/scala/org/apache/spark/sql/types/IntegerType$.html

Spark -SQL datatype : https://spark.apache.org/docs/latest/sql-ref-datatypes.html

AbstractDataType 抽象类 所有数据类型的基类

主要继承的子类是DataType.

  • [abstract field] defaultSize: 数据类型的默认size
  • [concrete value]simpleString 类型的字符串表示

原子数据类型 AtomicType

AtomicType 也是抽象类, 继承于DataType, 主要继承子类:

  • NumericType
  • DateType
  • BooleanType
  • String Type
  • TimestampTYpe

NumericType extends AtomicType

NumericType 依旧是抽象类

由两个抽象子类:

  • IntegralType 整数数值的抽象基类, 四个子类
    • Byte, Short, Integer, Long
  • FractionalType 分数数值的抽象基类
    • FloatType, DoubleType, DecimalType

IntegralType 整数家庭

非抽象类, 继承于IntegralType

ByteType:

  • InternalType = Byte
  • defaultSize = 1
  • simpleString = "tinyint"

ShortType

  • InternalType = Short
  • defaultSize = 2
  • simpleString = "smallint"

IntegerType

  • InternalType = Int
  • defaultSize = 4
  • simpleString = "int"

LongType

  • InternalType = Long
  • defaultSize = 8
  • simpleString = "bigint"

FractionalType 分数家庭

FloatType

  • InternalType = Float
  • defaultSize = 4

DoubleType

  • InternalType = Long
  • defaultSize = 8

DecimalType

复合数据类型

ArrayType(elementType, containsNull)

数组元素类型一致.

MapType

所有Key的类型要一致,所有Value类型一致.

StructType

结构体数据类型.