適用対象:
Databricks SQL
Databricks Runtime
データ型の間の競合を解決する方法を制御するルールについては、「SQL データ型のルール」を参照してください。
サポートされるデータ型
Azure Databricks は、次のデータ型をサポートしています。
| データ型 | Description |
|---|---|
| BIGINT | 8 バイト符号付き整数を表します。 |
| BINARY | バイト シーケンス値を表します。 |
| BOOLEAN | ブール値を表します。 |
| DATE | タイム ゾーンを指定せずに、フィールドの値 (年、月、日) を構成する値を表します。 |
| DECIMAL(p,s) | 最大有効桁数 p と固定スケール s を持つ数値を表します。 |
| DOUBLE | 8 バイトの倍精度浮動小数点数を表します。 |
| FLOAT | 4 バイトの単精度浮動小数点数を表します。 |
| INT | 4 バイト符号付き整数を表します。 |
| INTERVAL intervalQualifier | 秒または月のスケールで時間の間隔を表します。 |
| VOID | 型指定されていない NULL を表します。 |
| SMALLINT | 2 バイト符号付き整数値を表します。 |
| STRING | 文字列値を表します。 |
| TIMESTAMP | セッションのローカル タイムゾーンを指定して、フィールドの値 (年、月、日、時、分、秒) を構成する値を表します。 |
| TIMESTAMP_NTZ | 年、月、日、時、分、秒の各フィールドの値を構成する値を表します。 すべての操作は、アカウントのタイム ゾーンを考慮せずに実行されます。 |
| TINYINT | 1 バイト符号付き整数を表します。 |
| GEOGRAPHY(srid) | 座標参照系が地理 (経度と緯度の度単位) であり、 srid 値によって定義されている地理値を表します。
sridがANYに設定されている場合、座標参照システムは型にハードコーディングされず、ランタイム値になります。 |
| GEOMETRY(srid) | 座標参照系が Cartsian と認識され、 srid 値によって定義されているジオメトリ値を表します。
sridがANYに設定されている場合、座標参照システムは型にハードコーディングされず、ランタイム値になります。 |
| ARRAY < elementType > |
elementType 型の要素のシーケンスを構成する値を表します。 |
| MAP < keyType,valueType > | キーと値のペアのセットを構成する値を表します。 |
| STRUCT < [fieldName : fieldType [NOT NULL][COMMENT str][, ...]] > | フィールドのシーケンスで記述された構造体を持つ値を表します。 |
| VARIANT | 半構造化データを表します。 |
| OBJECT |
VARIANT の値を、フィールド セットで記述された構造で表します。 |
Important
Delta Lake では、VOID の種類はサポートされていません。
データ型の分類
データ型は次のクラスに分かれています。
整数数値型
整数型数値は整数を表します。
真数型
正確な数値型は、10 進数を表します。
2 進浮動小数点型
バイナリ浮動小数点型では、指数とバイナリ表現を使用して、大きな範囲の数値をカバーします。
数値型
数値型は、すべての数値データ型を表します。
日付と時刻の型
日付と時刻の型は、日付と時刻のコンポーネントを表します。
地理空間の種類
地理空間の種類は、幾何学的オブジェクトまたは地理オブジェクトを表します。
単純型
単純型は、シングルトン値を保持することによって定義される型です。
複合型
複合型は、複合型または 単純型の複数のコンポーネントで構成されます。
言語マッピング
適用対象:
Databricks Runtime
Scala
Spark SQL データ型はパッケージ org.apache.spark.sql.types に定義されています。 アクセスするには、パッケージをインポートします。
import org.apache.spark.sql.types._
| SQL 型 | データの種類 | 値の型 | データ型にアクセスまたは作成する API |
|---|---|---|---|
| TINYINT | ByteType | Byte | ByteType |
| SMALLINT | ShortType | Short | ShortType |
| INT | IntegerType | Int | IntegerType |
| BIGINT | LongType | Long | LongType |
| FLOAT | FloatType | Float | FloatType |
| DOUBLE | DoubleType | Double | DoubleType |
| DECIMAL(p,s) | DecimalType | java.math.BigDecimal | DecimalType |
| STRING | StringType | String | StringType |
| BINARY | BinaryType | Array[Byte] | BinaryType |
| BOOLEAN | BooleanType | ブール値 | BooleanType |
| TIMESTAMP | TimestampType | java.sql.Timestamp | TimestampType |
| TIMESTAMP_NTZ | TimestampNTZType | java.time.LocalDateTime | TimestampNTZType |
| DATE | DateType | java.sql.Date | DateType |
| 年月の間隔 | YearMonthIntervalType | java.time.Period | YearMonthIntervalType (3) |
| 日付と時刻の間隔 | DayTimeIntervalType | java.time.Duration | DayTimeIntervalType (3) |
| GEOGRAPHY(srid) | 地理タイプ | org.apache.spark.unsafe.type.GeographyVal | GeographyType |
| GEOMETRY(srid) | GeometryType | org.apache.spark.unsafe.type.GeometryVal | GeometryType |
| ARRAY | ArrayType | scala.collection.Seq | ArrayType(elementType [, containsNull]). (2) |
| MAP | MapType | scala.collection.Map | MapType(キータイプ, 値タイプ [, 値がnullを含むか]). (2) |
| STRUCT | StructType | org.apache.spark.sql.Row | StructType(fields). fields は StructFields のシーケンスです。 4. |
| StructField | このフィールドのデータ型の値の型 (たとえば、データ型が IntegerType の StructField の場合は Int) | StructField(name, dataType [, nullable])は、データフィールドを定義するためのパラメータです。 4 | |
| VARIANT | VariantType | org.apache.spark.unsafe.type.VariantVal | VariantType |
| OBJECT | サポートされていません | サポートされていません | サポートされていません |
Java
Spark SQL データ型はパッケージ org.apache.spark.sql.types に定義されています。 データ型にアクセスまたは作成するには、org.apache.spark.sql.types.DataTypes に用意されているファクトリ メソッドを使用します。
| SQL 型 | データ型 | 値の型 | データ型にアクセスまたは作成する API |
|---|---|---|---|
| TINYINT | ByteType | byte または Byte | DataTypes.ByteType |
| SMALLINT | ShortType | short または Short | DataTypes.ShortType |
| INT | IntegerType | int または Integer | DataTypes.IntegerType |
| BIGINT | LongType | long または Long | DataTypes.LongType |
| FLOAT | FloatType | float または Float | DataTypes.FloatType |
| DOUBLE | DoubleType | double または Double | DataTypes.DoubleType |
| DECIMAL(p,s) | DecimalType | java.math.BigDecimal | DataTypes.createDecimalType() DataTypes.createDecimalType(precision, scale)。 |
| STRING | StringType | String | DataTypes.StringType |
| BINARY | BinaryType | byte[] | DataTypes.BinaryType |
| BOOLEAN | BooleanType | boolean または Boolean | DataTypes.BooleanType |
| TIMESTAMP | TimestampType | java.sql.Timestamp | DataTypes.TimestampType |
| TIMESTAMP_NTZ | TimestampNTZType | java.time.LocalDateTime | DataTypes.TimestampNTZType |
| DATE | DateType | java.sql.Date | DataTypes.DateType |
| 年月の間隔 | YearMonthIntervalType | java.time.Period | 年/月間隔タイプ (3) |
| 日付と時刻の間隔 | DayTimeIntervalType | java.time.Duration | DayTimeIntervalType (3) |
| GEOGRAPHY(srid) | 地理タイプ (GeographyType) | org.apache.spark.unsafe.type.GeographyVal | Geographyタイプ |
| GEOMETRY(srid) | GeometryType | org.apache.spark.unsafe.type.GeometryVal | GeometryType |
| ARRAY | ArrayType | ava.util.List | DataTypes.createArrayType(elementType [, containsNull])。(2) |
| MAP | MapType | java.util.Map | DataTypes.createMapType(keyType, valueType [, valueContainsNull])。(2) |
| STRUCT | StructType | org.apache.spark.sql.Row | DataTypes.createStructType(fields). fields は StructField のリストまたは配列です。 4 |
| StructField | このフィールドのデータ型の値の型 (たとえば、データ型が IntegerType の StructField の場合は int) | DataTypes.createStructField(name, dataType, nullable) 4 | |
| VARIANT | VariantType | org.apache.spark.unsafe.type.VariantVal | VariantType |
| OBJECT | サポートされていません | サポートされていません | サポートされていません |
Python
Spark SQL データ型はパッケージ pyspark.sql.types に定義されています。 アクセスするには、パッケージをインポートします。
from pyspark.sql.types import *
| SQL 型 | データの種類 | 値の型 | データ型にアクセスまたは作成する API |
|---|---|---|---|
| TINYINT | ByteType | int または long。 (1) | ByteType() |
| SMALLINT | ShortType | int または long。 (1) | ShortType() |
| INT | IntegerType | int または long | IntegerType() |
| BIGINT | LongType | long (1) | LongType() |
| FLOAT | FloatType | float (1) | FloatType() |
| DOUBLE | DoubleType | float | DoubleType() |
| DECIMAL(p,s) | DecimalType | decimal.Decimal | DecimalType() |
| STRING | StringType | 文字列 | StringType() |
| BINARY | BinaryType | bytearray | BinaryType() |
| BOOLEAN | BooleanType | bool | BooleanType() |
| TIMESTAMP | TimestampType | datetime.datetime | TimestampType() |
| TIMESTAMP_NTZ | TimestampNTZType | datetime.datetime | TimestampNTZType() |
| DATE | DateType | datetime.date | DateType() |
| 年月の間隔 | YearMonthIntervalType | サポートされていません | サポートされていません |
| 日付と時刻の間隔 | DayTimeIntervalType | datetime.timedelta | DayTimeIntervalType (3) |
| GEOGRAPHY(srid) | 地理タイプ | GeographyVal | GeographyType() |
| GEOMETRY(srid) | GeometryType | GeometryVal | GeometryType() |
| ARRAY | ArrayType | list、tuple、または array | ArrayType(elementType, [containsNull]).(2) |
| MAP | MapType | dict | MapType(keyType, valueType, [valueContainsNull])。(2) |
| STRUCT | StructType | list または tuple | StructType(fields). field は StructField のシーケンスです。 (4) |
| StructField | このフィールドのデータ型の値の型 (たとえば、データ型が IntegerType の StructField の場合は Int) | StructField(name, dataType, [nullable]).(4) | |
| VARIANT | VariantType | VariantVal | VariantType() |
| OBJECT | サポートされていません | サポートされていません | サポートされていません |
R
| SQL 型 | データの種類 | 値の型 | データ型にアクセスまたは作成する API |
|---|---|---|---|
| TINYINT | ByteType | integer (1) | 'byte' |
| SMALLINT | ShortType | integer (1) | 'short' |
| INT | IntegerType | 整数 | 'integer' |
| BIGINT | LongType | integer (1) | 'long' |
| FLOAT | FloatType | 数値 (1) | 'float' |
| DOUBLE | DoubleType | numeric | 'double' |
| DECIMAL(p,s) | DecimalType | サポートされていません | サポートされていません |
| STRING | StringType | 文字 | 'string' |
| BINARY | BinaryType | raw | 'binary' |
| BOOLEAN | BooleanType | logical | 'bool' |
| TIMESTAMP | TimestampType | POSIXct | 'timestamp' |
| TIMESTAMP_NTZ | TimestampNTZType | datetime.datetime | TimestampNTZType() |
| DATE | DateType | Date | 'date' |
| 年月の間隔 | YearMonthIntervalType | サポートされていません | サポートされていません |
| 日付と時刻の間隔 | DayTimeIntervalType | サポートされていません | サポートされていません |
| GEOGRAPHY(srid) | サポートされていません | サポートされていません | サポートされていません |
| GEOMETRY(srid) | サポートされていません | サポートされていません | サポートされていません |
| ARRAY | ArrayType | vector または list | list(type='array', elementType=elementType, containsNull=[containsNull]).(2) |
| MAP | MapType | 環境 | list(type='map', keyType=keyType, valueType=valueType, valueContainsNull=[valueContainsNull])。(2) |
| STRUCT | StructType | 名前付きリスト | リスト(タイプ='ストラクト', フィールド=フィールド). fields は StructFields のシーケンスです。 (4) |
| StructField | このフィールドのデータ型の値の型 (たとえば、データ型が IntegerType の StructField の場合は integer) | list(name=name, type=dataType, nullable=[nullable]).(4) | |
| VARIANT | サポートされていません | サポートされていません | サポートされていません |
| OBJECT | サポートされていません | サポートされていません | サポートされていません |
(1) 数値は実行時にドメインに変換されます。 範囲内の数値であることを確認してください。
(2) 省略可能な値の既定値は TRUE。
(3) 間隔の種類
YearMonthIntervalType([startField,] endField): 次のフィールドの連続するサブセットで構成される年-月の間隔を表します。startFieldは型の左端のフィールド、endFieldは右端のフィールドです。startFieldとendFieldの有効値は0(MONTH)と1(YEAR)です。DayTimeIntervalType([startField,] endField): 次のフィールドの連続するサブセットで構成される日-時間の間隔を表します。startFieldは型の左端のフィールド、endFieldは右端のフィールドです。startFieldとendFieldの有効値は0(DAY)、1(HOUR)、2(MINUTE)、および3(SECOND)です。
(4)StructType
-
StructType(fields):StructField(フィールド) のシーケンス、リスト、または配列で記述された構造体を持つ値を表します。 同じ名前の 2 つのフィールドは許可されません。 -
StructField(name, dataType, nullable):StructType内のフィールドを表します。 フィールドの名前は、nameで示します。 フィールドのデータ型は、dataType で示します。nullableは、これらのフィールドの値がnull値を持つことができるかどうかを示します。 これは既定値です。