數據類型
適用於:磚的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
。字段顯示的名稱的名字
。一個字段的數據類型是由數據類型表示。可以為空
表明如果這些字段的值零
值。這是默認的。