共用方式為


資料類型

適用於:核取記號為「是」Databricks SQL 核取記號為「是」Databricks Runtime

如需管理數據類型之間衝突解決方式的規則,請參閱 SQL 數據類型規則

支援的資料類型

Azure Databricks 支援下列數據類型:

資料類型 描述
BIGINT 表示8位元組帶正負號的整數。
二元 表示位元組序列值。
布林 表示布爾值。
日期 表示值,包含欄位年、月和日的值,不含時區。
DECIMAL(p,s) 代表具有最大精度p和固定比例尺s的數字。
雙倍 表示8位元組雙精度浮點數。
浮動 表示 4 位元組單精度浮點數。
INT 表示 4 位元組帶正負號的整數。
INTERVAL intervalQualifier 可使用秒或月為單位來表示時間間隔。
無效 表示不具類型的 NULL。
SMALLINT 表示2字節帶正負號的整數。
字串 表示字符串值。
時間戳 表示值,包含欄位年、月、日、小時、分鐘和秒的值,以及會話本地時區。
TIMESTAMP_NTZ 表示值,包含欄位年、月、日、小時、分鐘和秒的值。 執行所有作業,無需考慮任何時區。
TINYINT(小整數類型) 表示1位元的帶正負號的整數。
ARRAY < elementType > 表示值,其中包含具有 elementType類型的元素序列。
MAP < keyType,valueType > 表示包含一組鍵值對的值。
STRUCT < [fieldName : fieldType [NOT NULL][COMMENT str][, ...]] > 表示具有欄位序列所描述結構的值。
變體 表示半結構化數據。
物件 表示 VARIANT 中的值,其結構體由欄位集所描述。

重要

Delta Lake 不支持 VOID 類型。

數據類型分類

資料類型會分組為下列類別:

  • 二進位浮點 類型使用指數和二進位表示法來涵蓋大量的數位:

語言對應

適用於:選擇「是」 Databricks Runtime

程式語言 Scala

Spark SQL 資料類型定義於封裝 org.apache.spark.sql.types中。 您可以匯入套件來存取這些內容:

import org.apache.spark.sql.types._
SQL 類型 資料類型 值類型 用來存取或建立數據類型的 API
TINYINT(小整數類型) 字節類型 位元 字節類型
SMALLINT ShortType ShortType
INT 整數類型 int 整數類型
BIGINT LongType LongType
浮動 浮點類型 浮動 浮點類型
雙倍 DoubleType 雙重 DoubleType
DECIMAL(p,s) 十進制類型 java.math.BigDecimal 十進制類型
字串 字串類型 繩子 字串類型
二元 二進制類型 陣列[Byte] 二進制類型
布林 BooleanType 布林值 BooleanType
時間戳 時間戳記類型 java.sql.Timestamp 時間戳記類型
TIMESTAMP_NTZ TimestampNTZ類型 java.time.LocalDateTime TimestampNTZ類型
日期 日期類型 java.sql.Date 日期類型
年-月區間 年月區間類型 java.time.Period YearMonthIntervalType (3)
日間時段 日間時間間隔類型 java.time.Duration DayTimeIntervalType (3)
陣列 陣列類型 scala.collection.Seq ArrayType(elementType [, containsNull])。 (2)
地圖 地圖類型 scala.collection.Map MapType(keyType,valueType [,valueContainsNull]) (2)
結構 結構類型 org.apache.spark.sql.Row StructType(fields)。 fields 是一個 StructField 的序列。 4.
StructField 此欄位資料類型的實值型別(例如,StructField 的 Int 資料類型為 IntegerType) StructField(name, dataType [, nullable])。 4
變體 變體類型 org.apache.spark.unsafe.type.VariantVal 變體類型
物件 不支援 不支援 不支援

爪哇島

Spark SQL 資料類型定義於封裝 org.apache.spark.sql.types中。 若要存取或建立數據類型,請使用 中 org.apache.spark.sql.types.DataTypes提供的 Factory 方法。

SQL 類型 資料類型 值類型 用來存取或建立數據類型的 API
TINYINT(小整數類型) 字節類型 字節或位元組 DataTypes.ByteType
SMALLINT ShortType 「short」或「Short」 資料類型.ShortType
INT 整數類型 int 或 Integer DataTypes.IntegerType(資料類型:整數)
BIGINT LongType 長時間或 Long 資料類型.LongType
浮動 浮點類型 float 或 Float 資料型態.DataTypes.FloatType
雙倍 DoubleType double 或 Double DataTypes.DoubleType
DECIMAL(p,s) 十進制類型 java.math.BigDecimal DataTypes.createDecimalType() DataTypes.createDecimalType(precision, scale)。
字串 字串類型 繩子 DataTypes.StringType (資料類型.字串類型)
二元 二進制類型 byte[] 資料類型.二進位類型
布林 BooleanType 布林或布爾值 資料類型.BooleanType
時間戳 時間戳記類型 java.sql.Timestamp 資料類型.時間戳記類型
TIMESTAMP_NTZ TimestampNTZ類型 java.time.LocalDateTime DataTypes.TimestampNTZType
日期 日期類型 java.sql.Date 資料類型.Date型別
年-月區間 年月區間類型 java.time.Period YearMonthIntervalType (3)
日間時段 日間時間間隔類型 java.time.Duration DayTimeIntervalType (3)
陣列 陣列類型 ava.util.List DataTypes.createArrayType(elementType [, containsNull])。(2)
地圖 地圖類型 java.util.Map DataTypes.createMapType(keyType,valueType [,valueContainsNull])。(2)
結構 結構類型 org.apache.spark.sql.Row DataTypes.createStructType(fields)。 fields 是 StructField 的清單或陣列。 4
StructField 此欄位資料類型的實值型別(例如,StructField 的 int 資料類型為 IntegerType) DataTypes.createStructField(name, dataType, nullable) 4
變體 變體類型 org.apache.spark.unsafe.type.VariantVal 變體類型
物件 不支援 不支援 不支援

Python(程式語言)

Spark SQL 資料類型定義於封裝 pyspark.sql.types中。 您可以匯入套件來存取這些內容:

from pyspark.sql.types import *
SQL 類型 資料類型 值類型 用來存取或建立數據類型的 API
TINYINT(小整數類型) 字節類型 int 或 long。 (1) ByteType()
SMALLINT ShortType int 或 long。 (1) ShortType()
INT 整數類型 整數或長整數 IntegerType()
BIGINT LongType long (1) LongType()
浮動 浮點類型 float (1) FloatType()
雙倍 DoubleType 浮動 DoubleType()
DECIMAL(p,s) 十進制類型 十進位。十進位 DecimalType()
字串 字串類型 字串 StringType()
二元 二進制類型 bytearray(位元組陣列) BinaryType()
布林 BooleanType 布爾 (bool) 布林值類型()
時間戳 時間戳記類型 datetime.datetime(日期時間) TimestampType()
TIMESTAMP_NTZ TimestampNTZ類型 datetime.datetime TimestampNTZType()
日期 日期類型 datetime.date DateType()
年-月區間 年月區間類型 不支援 不支援
日間時段 日間時間間隔類型 datetime.timedelta DayTimeIntervalType (3)
陣列 陣列類型 list、tuple 或 array ArrayType(elementType,[containsNull])。(2)
地圖 地圖類型 dict MapType(keyType,valueType,[valueContainsNull])。(2)
結構 結構類型 list 或 Tuple StructType(fields)。 field 是 StructField 的 Seq。 (4)
StructField 此欄位資料類型的實值型別 (例如,StructField 的 Int 資料類型為 IntegerType) StructField(name, dataType, [nullable])。(4)
變體 變體類型 VariantVal VariantType()
物件 不支援 不支援 不支援

R

SQL 類型 資料類型 值類型 用來存取或建立數據類型的 API
TINYINT(小整數類型) 字節類型 整數 (1) 位元組 (byte)
SMALLINT ShortType 整數 (1)
INT 整數類型 整數 整數
BIGINT LongType 整數 (1)
浮動 浮點類型 numeric (1) 漂浮
雙倍 DoubleType 數字的 雙倍
DECIMAL(p,s) 十進制類型 不支援 不支援
字串 字串類型 字符 字串
二元 二進制類型 原始 二進位
布林 BooleanType 邏輯的 'bool'
時間戳 時間戳記類型 POSIXct 時間戳記
TIMESTAMP_NTZ TimestampNTZ類型 datetime.datetime TimestampNTZType()
日期 日期類型 日期 日期
年-月區間 年月區間類型 不支援 不支援
日間時段 日間時間間隔類型 不支援 不支援
陣列 陣列類型 向量或清單 list(type='array', elementType=elementType, containsNull=[containsNull])。(2)
地圖 地圖類型 環境 list{type='map', keyType=keyType, valueType=valueType, valueContainsNull=[valueContainsNull]}。(2)
結構 結構類型 具名清單 list(type='struct', fields=fields)。 fields 是一個 StructField 的序列。 (4)
StructField 此欄位資料類型的實值型別(例如,StructField 的整數資料類型為 IntegerType) list(name=name, type=dataType, nullable=[nullable])。(4)
變體 不支援 不支援 不支援
物件 不支援 不支援 不支援

(1) 數字會在執行時轉換成網域。 請確定數字在範圍內。

(2) 選擇性值預設為 TRUE

(3) 間隔類型

  • YearMonthIntervalType([startField,] endField):表示由下列欄位連續子集所組成的年月間隔:

    startField 是最左邊的欄位,而 endField 是類型最右邊的欄位。 startFieldendField 的有效值為 0(MONTH)1(YEAR)

  • DayTimeIntervalType([startField,] endField):表示由下列欄位連續子集所組成的日時間間隔:

    startField 是最左邊的欄位,而 endField 是類型最右邊的欄位。 startFieldendField 的有效值為 0(DAY)1(HOUR)2(MINUTE)3(SECOND)

(4)StructType

  • StructType(fields) 代表由序列、清單或含有 StructField(欄位)的陣列所描述的結構值。 不允許有兩個具有相同名稱的欄位。
  • StructField(name, dataType, nullable) 表示一個 StructType 中的欄位。 欄位名稱會以 name表示。 欄位的數據類型會以 dataType 表示。 nullable 指出這些欄位的值是否可以有 null 值。 這是預設值。