數據類型
適用於:磚的SQL磚運行時
有關控製如何解決數據類型之間衝突的規則,請參見SQL數據類型規則.
支持的數據類型
Databricks支持以下數據類型:
數據類型 |
描述 |
---|---|
表示8字節有符號整數。 |
|
表示字節序列值。 |
|
表示布爾值。 |
|
表示由年、月和日字段組成的值,不帶時區。 |
|
表示具有最大精度的數字 |
|
表示8字節雙精度浮點數。 |
|
表示4字節單精度浮點數。 |
|
表示4字節有符號整數。 |
|
表示以秒或月為單位的時間間隔。 |
|
表示無類型的NULL。 |
|
表示2字節有符號整數。 |
|
表示字符串值。 |
|
表示由年、月、日、小時、分鍾和秒字段的值組成的值,並使用會話本地時區。 |
|
表示1字節有符號整數。 |
|
表示由類型為的元素序列組成的值 |
|
表示由一組鍵值對組成的值。 |
|
> . STRUCT < [fieldName: fieldType [NOT NULL][COMMENT str][,…] |
表示具有由字段序列描述的結構的值。 |
語言映射
適用於:磚運行時
Spark 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 |
|
DateType |
java.sql.Date |
DateType |
|
YearMonthIntervalType |
java.time.Period |
YearMonthIntervalType(3) |
|
DayTimeIntervalType |
java.time.Duration |
DayTimeIntervalType(3) |
|
ArrayType |
scala.collection.Seq |
ArrayType(elementType [, containsNull])。(2) |
|
MapType |
scala.collection.Map |
MapType(keyType, valueType [, valueContainsNull])。(2) |
|
StructType |
org.apache.spark.sql.Row |
StructType(字段)。fields是StructField的序列。[4](# 4)。 |
|
StructField |
該字段的數據類型的值類型(例如,Int表示數據類型為IntegerType的StructField) |
StructField(name, dataType [, nullable])。[4] (# 4) |
Spark SQL數據類型定義在包中org.apache.spark.sql.types
.中提供的工廠方法可訪問或創建數據類型org.apache.spark.sql.types.DataTypes
.
SQL類型 |
數據類型 |
值類型 |
API來訪問或創建數據類型 |
---|---|---|---|
ByteType |
字節或字節 |
數據類型。ByteType |
|
ShortType |
short或short |
數據類型。ShortType |
|
IntegerType |
int或Integer |
數據類型。IntegerType |
|
LongType |
long還是long |
數據類型。LongType |
|
FloatType |
浮或浮 |
數據類型。FloatType |
|
倍增式 |
雙倍或雙倍 |
數據類型。倍增式 |
|
DecimalType |
java.math.BigDecimal |
DataTypes.createDecimalType()數據類型。createDecimalType(精度、規模)。 |
|
StringType |
字符串 |
數據類型。StringType |
|
BinaryType |
byte [] |
數據類型。BinaryType |
|
BooleanType |
布爾還是布爾 |
數據類型。布爾Type |
|
TimestampType |
java.sql.Timestamp |
數據類型。TimestampType |
|
DateType |
java.sql.Date |
數據類型。DateType |
|
YearMonthIntervalType |
java.time.Period |
YearMonthIntervalType(3) |
|
DayTimeIntervalType |
java.time.Duration |
DayTimeIntervalType(3) |
|
ArrayType |
ava.util.List |
數據類型。createArrayType(elementType [, containsNull])。(2) |
|
MapType |
java.util.Map |
數據類型。createMapType(keyType, valueType [, valueContainsNull])(2) |
|
StructType |
org.apache.spark.sql.Row |
DataTypes.createStructType(字段)。fields是StructField的列表或數組。[4] (# 4) |
|
StructField |
該字段的數據類型的值類型(例如,int表示數據類型為IntegerType的StructField) |
數據類型。createStructField(name, dataType, nullable) |
Spark SQL數據類型定義在包中pyspark.sql.types
.您可以通過導入包來訪問它們:
從pyspark.sql.types進口*
SQL類型 |
數據類型 |
值類型 |
API來訪問或創建數據類型 |
---|---|---|---|
ByteType |
Int或long。(1) |
ByteType () |
|
ShortType |
Int或long。(1) |
ShortType () |
|
IntegerType |
Int或long |
IntegerType () |
|
LongType |
長(1) |
LongType () |
|
FloatType |
浮動(1) |
FloatType () |
|
倍增式 |
浮動 |
倍增式() |
|
DecimalType |
小數。小數 |
DecimalType () |
|
StringType |
字符串 |
StringType () |
|
BinaryType |
中bytearray |
BinaryType () |
|
BooleanType |
保齡球 |
BooleanType () |
|
TimestampType |
datetime.datetime |
TimestampType () |
|
DateType |
datetime.date |
DateType () |
|
YearMonthIntervalType |
不支持 |
不支持 |
|
DayTimeIntervalType |
datetime.timedelta |
DayTimeIntervalType(3) |
|
ArrayType |
列表、元組或數組 |
ArrayType(應用[containsNull])。(2) |
|
MapType |
dict |
MapType(keyType, valueType, [valueContainsNull])。(2) |
|
StructType |
列表或元組 |
StructType(字段)。field是StructField的Seq。(4) |
|
StructField |
該字段的數據類型的值類型(例如,Int表示數據類型為IntegerType的StructField) |
StructField(名稱,數據類型,[nullable])。(4) |
SQL類型 |
數據類型 |
值類型 |
API來訪問或創建數據類型 |
---|---|---|---|
ByteType |
整數(1) |
“字節” |
|
ShortType |
整數(1) |
“短” |
|
IntegerType |
整數 |
“整數” |
|
LongType |
整數(1) |
“長” |
|
FloatType |
數字(1) |
“浮” |
|
倍增式 |
數字 |
“雙” |
|
DecimalType |
不支持 |
不支持 |
|
StringType |
字符 |
“字符串” |
|
BinaryType |
生 |
“二元” |
|
BooleanType |
邏輯 |
“bool” |
|
TimestampType |
POSIXct |
“時間戳” |
|
DateType |
日期 |
“日期” |
|
YearMonthIntervalType |
不支持 |
不支持 |
|
DayTimeIntervalType |
不支持 |
不支持 |
|
ArrayType |
向量或列表 |
list(type= ' array ', elementType=elementType, containsNull=[containsNull])。(2) |
|
MapType |
環境 |
list(type= ' map ', keyType=keyType, valueType=valueType, valueContainsNull=[valueContainsNull])。(2) |
|
StructType |
命名的列表 |
列表(類型=“結構”字段=字段)。fields是StructField的序列。(4) |
|
StructField |
該字段的數據類型的值類型(例如,數據類型為IntegerType的StructField為整數) |
list(name=name, type=dataType, nullable=[nullable])。(4) |
(1)數字在運行時轉換為域。確保數字在範圍內。
(2)可選值默認為真正的
.
(3)間隔類型
YearMonthIntervalType ([startField,]endField)
:表示由下列字段的連續子集組成的年-月間隔:startField
是最左邊的字段,和endField
類型的最右邊字段。的有效值startField
而且endField
是0(月)
而且1(年)
.DayTimeIntervalType ([startField,]endField)
:表示一個日-時間間隔,由以下字段的連續子集組成:startField
是最左邊的字段,和endField
類型的最右邊字段。的有效值startField
而且endField
是0(天)
,1(小時)
,2(分鍾)
,3(第二次)
.
(4)StructType
StructType(字段)
的序列、列表或數組描述的結構表示值StructField
(字段)。不允許有兩個名稱相同的字段。StructField(名稱、數據類型,可以為空)
類中的字段StructType
.字段的名稱由的名字
.字段的數據類型由dataType表示。可以為空
指示這些字段的值是否可以具有零
值。這是默認值。