データ型

適用対象:check marked yes Databricks SQL check marked yes Databricks Runtime

データ型の間の競合を解決する方法を制御するルールについては、「SQL データ型のルール」を参照してください。

サポートされているデータ型

Azure Databricks は、次のデータ型をサポートしています。

データ型 説明
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 バイト符号付き整数を表します。
ARRAY <elementType> elementType 型の要素のシーケンスを構成する値を表します。
MAP < keyType,valueType > キーと値のペアのセットを構成する値を表します。
STRUCT < [fieldName : fieldType [NOT NULL][COMMENT str][, …]] > フィールドのシーケンスで記述された構造体を持つ値を表します。

データ型の分類

データ型は次のクラスに分かれています。

言語の対応付け

適用対象: check marked yes Databricks Runtime

Scala

Spark SQL データ型はパッケージ org.apache.spark.sql.types に定義されています。 アクセスするには、パッケージをインポートします。

import org.apache.spark.sql.types._
SQL 型 データ型 値の型 データ型にアクセスまたは作成する API
TINYINT ByteType Byte ByteType
SMALLINT ShortType ショート 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 Boolean 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)
ARRAY ArrayType scala.collection.Seq ArrayType(elementType [, containsNull]). (2)
MAP MapType scala.collection.Map MapType(keyType, valueType [, valueContainsNull]). (2)
STRUCT StructType org.apache.spark.sql.Row StructType(fields). fields は StructFields のシーケンスです。 4.
StructField このフィールドのデータ型の値の型 (たとえば、データ型が IntegerType の StructField の場合は Int) StructField(name, dataType [, nullable]). 4

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 YearMonthIntervalType (3)
日付と時刻の間隔 DayTimeIntervalType java.time.Duration DayTimeIntervalType (3)
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

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 string 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)
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)

R

SQL 型 データ型 値の型 データ型にアクセスまたは作成する API
TINYINT ByteType integer (1) ‘byte’
SMALLINT ShortType integer (1) ‘short’
INT IntegerType integer ‘integer’
BIGINT LongType integer (1) ‘long’
FLOAT FloatType numeric (1) ‘float’
DOUBLE DoubleType numeric ‘double’
DECIMAL(p,s) DecimalType サポートされていません サポートされていません
STRING StringType character ‘string’
BINARY BinaryType raw ‘binary’
BOOLEAN BooleanType 論理 ‘bool’
TIMESTAMP TimestampType POSIXct ‘timestamp’
TIMESTAMP_NTZ TimestampNTZType datetime.datetime TimestampNTZType()
DATE DateType Date ‘date’
年月の間隔 YearMonthIntervalType サポートされていません サポートされていません
日付と時刻の間隔 DayTimeIntervalType サポートされていません サポートされていません
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 名前付きリスト 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 は右端のフィールドです。 startFieldendField の有効値は 0(MONTH)1(YEAR) です。

  • DayTimeIntervalType([startField,] endField): 次のフィールドの連続するサブセットで構成される日-時間の間隔を表します。

    startField は型の左端のフィールド、endField は右端のフィールドです。 startFieldendField の有効値は 0(DAY)1(HOUR)2(MINUTE)、および 3(SECOND) です。

(4)StructType

  • StructType(fields): StructField (フィールド) のシーケンス、リスト、または配列で記述された構造体を持つ値を表します。 同じ名前の 2 つのフィールドは許可されません。
  • StructField(name, dataType, nullable): StructType 内のフィールドを表します。 フィールドの名前は、name で示します。 フィールドのデータ型は、dataType で示します。 nullable は、これらのフィールドの値が null 値を持つことができるかどうかを示します。 既定のプランです。