適用対象: 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
スカラ (プログラミング言語)
Spark SQL データ型はパッケージ org.apache.spark.sql.types
に定義されています。 アクセスするには、パッケージをインポートします。
import org.apache.spark.sql.types._
SQL 型 | データ型 | 値の型 | データ型にアクセスまたは作成する API |
---|---|---|---|
TINYINT | バイトタイプ | バイト | バイトタイプ |
SMALLINT | ShortType | ショート | ShortType |
INT | インテジャータイプ | int | インテジャータイプ |
BIGINT | ロングタイプ (LongType) | long | ロングタイプ (LongType) |
フロート | フロート型 | 浮く | フロート型 |
ダブル | ダブルタイプ | ダブル | ダブルタイプ |
DECIMAL(p,s) | 10進型 | java.math.BigDecimal | 10進型 |
文字列 | 文字列型 | 糸 | 文字列型 |
バイナリ | バイナリタイプ | 配列[バイト] | バイナリタイプ |
ブーリアン | BooleanType | ボーリアン | BooleanType |
タイムスタンプ | タイムスタンプ型 | java.sql.Timestamp | タイムスタンプ型 |
TIMESTAMP_NTZ | タイムスタンプNTZタイプ | java.time.LocalDateTime | タイムスタンプNTZタイプ |
日付 | デートタイプ | java.sql.Date | デートタイプ |
年月の間隔 | 年月間隔タイプ | java.time.Period | 年月間隔タイプ (3) |
日付と時刻の間隔 | デイタイムインターバルタイプ | java.time.Duration | DayTimeIntervalType (3) |
配列 | アレイタイプ | scala.collection.Seq | ArrayType(elementType [, containsNull]) (2) |
地図 | マップタイプ | scala.collection.Map | MapType(keyType, valueType [, valueContainsNull]). (2) |
構造体 | StructType | org.apache.spark.sql.Row | StructType(fields)。 fields は StructFields のシーケンスです。 4. |
StructField | このフィールドのデータ型の値の型 (たとえば、データ型が IntegerType の StructField の場合は Int) | StructField(name, dataType [, nullable])は、データフィールドを定義するためのパラメータです。 4 | |
バリアント | バリアントタイプ | org.apache.spark.unsafe.type.VariantVal | バリアントタイプ |
オブジェクト | サポートされていません | サポート対象外 | サポート対象外 |
ジャワ
Spark SQL データ型はパッケージ org.apache.spark.sql.types
に定義されています。 データ型にアクセスまたは作成するには、org.apache.spark.sql.types.DataTypes
に用意されているファクトリ メソッドを使用します。
SQL 型 | データ型 | 値の型 | データ型にアクセスまたは作成する API |
---|---|---|---|
TINYINT | バイトタイプ | byte または Byte | DataTypes.ByteType |
SMALLINT | ShortType | short または Short | DataTypes.ShortType |
INT | インテジャータイプ | int または Integer | データタイプ・インテジャータイプ |
BIGINT | ロングタイプ (LongType) | long または Long | DataTypes.LongType |
フロート | フロート型 | float または Float | DataTypes.FloatType(データ型:浮動小数点型) |
ダブル | ダブルタイプ | double または Double | DataTypes.DoubleType |
DECIMAL(p,s) | 10進型 | java.math.BigDecimal | DataTypes.createDecimalType() DataTypes.createDecimalType(precision, scale)。 |
文字列 | 文字列型 | 糸 | DataTypes.StringType |
バイナリ | バイナリタイプ | byte[] | データ型のBinaryType |
ブーリアン | BooleanType | boolean または Boolean | データ型.Boolean型 |
タイムスタンプ | タイムスタンプ型 | java.sql.Timestamp | DataTypes.TimestampType |
TIMESTAMP_NTZ | タイムスタンプNTZタイプ | java.time.LocalDateTime | DataTypes.TimestampNTZType |
日付 | デートタイプ | java.sql.Date | DataTypes.DateType |
年月の間隔 | 年月間隔タイプ | java.time.Period | 年月間隔タイプ (3) |
日付と時刻の間隔 | デイタイムインターバルタイプ | java.time.Duration | DayTimeIntervalType (3) |
配列 | アレイタイプ | ava.util.List | DataTypes.createArrayType(elementType [, containsNull])。(2) |
地図 | マップタイプ | java.util.Map | DataTypes.createMapType(keyType, valueType [, valueContainsNull])。(2) |
構造体 | StructType | org.apache.spark.sql.Row | DataTypes.createStructType(fields)。 fields は StructField のリストまたは配列です。 4 |
StructField | このフィールドのデータ型の値の型 (たとえば、データ型が IntegerType の StructField の場合は int) | 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 | インテジャータイプ | int または long | IntegerType() |
BIGINT | ロングタイプ (LongType) | long (1) | LongType() |
フロート | フロート型 | float (1) | FloatType() |
ダブル | ダブルタイプ | フロート | DoubleType() |
DECIMAL(p,s) | 10進型 | 小数。小数 | DecimalType() |
文字列 | 文字列型 | ひも | StringType() |
バイナリ | バイナリタイプ | bytearray | BinaryType() |
ブーリアン | BooleanType | ブール (bool) | BooleanType() |
タイムスタンプ | タイムスタンプ型 | datetime.datetime | TimestampType() |
TIMESTAMP_NTZ | タイムスタンプNTZタイプ | datetime.datetime | タイムスタンプNTZタイプ() |
日付 | デートタイプ | datetime.date (日付) | DateType() |
年月の間隔 | 年月間隔タイプ | サポート対象外 | サポート対象外 |
日付と時刻の間隔 | デイタイムインターバルタイプ | datetime.timedelta | DayTimeIntervalType (3) |
配列 | アレイタイプ | list、tuple、または array | ArrayType(elementType, [containsNull]).(2) |
地図 | マップタイプ | 辞書 | MapType(keyType, valueType, [valueContainsNull])。(2) |
構造体 | StructType | list または tuple | StructType(fields)。 field は StructField のシーケンスです。 (4) |
StructField | このフィールドのデータ型の値の型 (たとえば、データ型が IntegerType の StructField の場合は Int) | StructField(name, dataType, [nullable]).(4) | |
バリアント | バリアントタイプ | VariantVal | VariantType() |
オブジェクト | サポートされていません | サポート対象外 | サポート対象外 |
R
SQL 型 | データ型 | 値の型 | データ型にアクセスまたは作成する API |
---|---|---|---|
TINYINT | バイトタイプ | integer (1) | バイト |
SMALLINT | ShortType | integer (1) | 短い |
INT | インテジャータイプ | 整数 (integer) | 整数 |
BIGINT | ロングタイプ (LongType) | integer (1) | 長い |
フロート | フロート型 | 数値 (1) | 浮動小数点数 |
ダブル | ダブルタイプ | 数値 | ダブル |
DECIMAL(p,s) | 10進型 | サポート対象外 | サポート対象外 |
文字列 | 文字列型 | 文字 | 文字列 |
バイナリ | バイナリタイプ | 生 | バイナリー |
ブーリアン | BooleanType | 論理 | ブール |
タイムスタンプ | タイムスタンプ型 | POSIXct | タイムスタンプ |
TIMESTAMP_NTZ | タイムスタンプNTZタイプ | datetime.datetime | タイムスタンプNTZタイプ() |
日付 | デートタイプ | 日付 | 日付 |
年月の間隔 | 年月間隔タイプ | サポート対象外 | サポート対象外 |
日付と時刻の間隔 | デイタイムインターバルタイプ | サポート対象外 | サポート対象外 |
配列 | アレイタイプ | vector または list | list(type='array', elementType=elementType, containsNull=[containsNull]).(2) |
地図 | マップタイプ | 環境 | list(type='map', keyType=keyType, valueType=valueType, valueContainsNull=[valueContainsNull])。(2) |
構造体 | StructType | 名前付きリスト | list(type='struct', fields=fields). fields は StructFields のシーケンスです。 (4) |
StructField | このフィールドのデータ型の値の型 (たとえば、データ型が IntegerType の StructField の場合は integer) | list(name=name, type=dataType, nullable=[nullable]).(4) | |
バリアント | サポートされていません | サポート対象外 | サポート対象外 |
オブジェクト | サポートされていません | サポート対象外 | サポート対象外 |
(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
値を持つことができるかどうかを示します。 既定のプランです。