数据类型
适用于:砖的SQL砖运行时
对规则数据类型之间的冲突如何解决,明白了SQL数据类型规则。
支持的数据类型
砖支持以下的数据类型:
数据类型 |
描述 |
---|---|
代表8字节整数数字签名。 |
|
代表字节序列值。 |
|
是布尔值。 |
|
代表值组成的字段的值年,月,日,没有一个时区。 |
|
代表数字和最大精度 |
|
代表8字节双精度浮点数。 |
|
代表4字节单精度浮点数。 |
|
代表4字节整数数字签名。 |
|
代表的间隔时间在秒或月。 |
|
代表无类型为空。 |
|
代表2字节整数数字签名。 |
|
代表字符串值。 |
|
代表值包含字段的值年,月,日,小时,分钟,第二,当地时区与会话。 |
|
代表值组成的字段的值年,月,日,小时,分钟和秒。执行所有操作,没有考虑任何时区。 |
|
代表字节整数数字签名。 |
|
代表值组成的一个序列的元素的类型 |
|
代表值组成一组键值对。 |
|
代表值和描述的结构序列字段。 |
语言映射
适用于:砖运行时
引发包中定义的SQL数据类型org.apache.spark.sql.types
。你访问它们通过导入包:
进口org。apache。火花。sql。类型。_
SQL类型 |
数据类型 |
值类型 |
API来访问或创建数据类型 |
---|---|---|---|
ByteType |
字节 |
ByteType |
|
ShortType |
短 |
ShortType |
|
IntegerType |
Int |
IntegerType |
|
LongType |
长 |
LongType |
|
FloatType |
浮动 |
FloatType |
|
倍增式 |
双 |
倍增式 |
|
DecimalType |
java.math.BigDecimal |
DecimalType |
|
StringType |
字符串 |
StringType |
|
BinaryType |
数组(字节) |
BinaryType |
|
BooleanType |
布尔 |
BooleanType |
|
TimestampType |
java.sql.Timestamp |
TimestampType |
|
TimestampNTZType |
java.time.LocalDateTime |
TimestampNTZType |
|
DateType |
java.sql.Date |
DateType |
|
YearMonthIntervalType |
java.time.Period |
YearMonthIntervalType(3) |
|
DayTimeIntervalType |
java.time.Duration |
DayTimeIntervalType(3) |
|
ArrayType |
scala.collection.Seq |
ArrayType(应用[containsNull])。(2) |
|
MapType |
scala.collection.Map |
MapType (keyType valueType [, valueContainsNull])。(2) |
|
StructType |
org.apache.spark.sql.Row |
StructType(字段)。是一种StructField Seq字段。[4](# 4)。 |
|
StructField |
数据类型的字段的值类型(例如,Int StructField IntegerType与数据类型) |
StructField(名称、数据类型(可以为空))。[4](# 4) |
引发包中定义的SQL数据类型org.apache.spark.sql.types
。访问或创建一个数据类型,使用工厂方法中提供org.apache.spark.sql.types.DataTypes
。
SQL类型 |
数据类型 |
值类型 |
API来访问或创建数据类型 |
---|---|---|---|
ByteType |
字节或字节 |
DataTypes.ByteType |
|
ShortType |
短或短 |
DataTypes.ShortType |
|
IntegerType |
int或整数 |
DataTypes.IntegerType |
|
LongType |
长或长 |
DataTypes.LongType |
|
FloatType |
浮动或浮动 |
DataTypes.FloatType |
|
倍增式 |
双或双 |
DataTypes.DoubleType |
|
DecimalType |
java.math.BigDecimal |
DataTypes.createDecimalType()数据类型。createDecimalType(精度、规模)。 |
|
StringType |
字符串 |
DataTypes.StringType |
|
BinaryType |
byte [] |
DataTypes.BinaryType |
|
BooleanType |
布尔或布尔 |
DataTypes.BooleanType |
|
TimestampType |
java.sql.Timestamp |
DataTypes.TimestampType |
|
TimestampNTZType |
java.time.LocalDateTime |
DataTypes.TimestampNTZType |
|
DateType |
java.sql.Date |
DataTypes.DateType |
|
YearMonthIntervalType |
java.time.Period |
YearMonthIntervalType(3) |
|
DayTimeIntervalType |
java.time.Duration |
DayTimeIntervalType(3) |
|
ArrayType |
ava.util.List |
数据类型。createArrayType(应用[containsNull])。(2) |
|
MapType |
java.util.Map |
数据类型。createMapType (keyType valueType [, valueContainsNull])。(2) |
|
StructType |
org.apache.spark.sql.Row |
DataTypes.createStructType(字段)。StructField字段是一个列表或数组。[4](# 4) |
|
StructField |
数据类型的字段的值类型(例如,int StructField IntegerType与数据类型) |
数据类型。createStructField(名称、数据类型可以为空)[4](# 4) |
引发包中定义的SQL数据类型pyspark.sql.types
。你访问它们通过导入包:
从pyspark.sql.types进口*
SQL类型 |
数据类型 |
值类型 |
API来访问或创建数据类型 |
---|---|---|---|
ByteType |
int或长。(1) |
ByteType () |
|
ShortType |
int或长。(1) |
ShortType () |
|
IntegerType |
int或长 |
IntegerType () |
|
LongType |
长(1) |
LongType () |
|
FloatType |
浮动(1) |
FloatType () |
|
倍增式 |
浮动 |
倍增式() |
|
DecimalType |
decimal.Decimal |
DecimalType () |
|
StringType |
字符串 |
StringType () |
|
BinaryType |
中bytearray |
BinaryType () |
|
BooleanType |
bool |
BooleanType () |
|
TimestampType |
datetime.datetime |
TimestampType () |
|
TimestampNTZType |
datetime.datetime |
TimestampNTZType () |
|
DateType |
datetime.date |
DateType () |
|
YearMonthIntervalType |
不支持 |
不支持 |
|
DayTimeIntervalType |
datetime.timedelta |
DayTimeIntervalType(3) |
|
ArrayType |
列表、元组或数组 |
ArrayType(应用[containsNull])。(2) |
|
MapType |
dict |
valueType MapType (keyType, [valueContainsNull])。(2) |
|
StructType |
列表或元组 |
StructType(字段)。字段是一个Seq StructField。(4) |
|
StructField |
数据类型的字段的值类型(例如,Int StructField IntegerType与数据类型) |
StructField(名称、数据类型(可以为空))。(4) |
SQL类型 |
数据类型 |
值类型 |
API来访问或创建数据类型 |
---|---|---|---|
ByteType |
整数(1) |
“字节” |
|
ShortType |
整数(1) |
“短” |
|
IntegerType |
整数 |
“整数” |
|
LongType |
整数(1) |
“长” |
|
FloatType |
数字(1) |
“浮” |
|
倍增式 |
数字 |
“双” |
|
DecimalType |
不支持 |
不支持 |
|
StringType |
字符 |
“字符串” |
|
BinaryType |
生 |
“二元” |
|
BooleanType |
逻辑 |
“bool” |
|
TimestampType |
POSIXct |
“时间戳” |
|
TimestampNTZType |
datetime.datetime |
TimestampNTZType () |
|
DateType |
日期 |
“日期” |
|
YearMonthIntervalType |
不支持 |
不支持 |
|
DayTimeIntervalType |
不支持 |
不支持 |
|
ArrayType |
向量或列表 |
列表(type =“数组”,应用=应用containsNull = [containsNull])。(2) |
|
MapType |
环境 |
列表(type =“地图”,keyType = keyType valueType = valueType valueContainsNull = [valueContainsNull])。(2) |
|
StructType |
命名的列表 |
列表(类型=“结构”字段=字段)。是一种StructField Seq字段。(4) |
|
StructField |
数据类型的字段的值类型(例如,整数StructField IntegerType与数据类型) |
列表(name =名称、类型=数据类型,可以为空=(可以为空))。(4) |
(1)数字是在运行时转换为域。确保数字范围内。
(2)可选的默认值真正的
。
(3)间隔类型
YearMonthIntervalType ([startField,]endField)
:代表一个year-month间隔是由相邻的子集以下字段:startField
是最左边的领域,endField
最右边的字段的类型。有效的值startField
和endField
是0(月)
和1(年)
。DayTimeIntervalType ([startField,]endField)
:代表一个白天的间隔是由连续的子集以下字段:startField
是最左边的领域,endField
最右边的字段的类型。有效的值startField
和endField
是0(天)
,1(小时)
,2(分钟)
,3(第二次)
。
(4)StructType
StructType(字段)
代表值和描述的结构序列,列表或数组StructField
(字段)。两个字段具有相同名称是不允许的。StructField(名称、数据类型,可以为空)
代表一个字段中StructType
。字段显示的名称的名字
。一个字段的数据类型是由数据类型表示。可以为空
表明如果这些字段的值零
值。这是默认的。