次の方法で共有


Data types

Applies to:check marked yes Databricks SQL check marked yes Databricks Runtime

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

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

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

Data Type 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 値によって定義されている地理値を表します。 sridANYに設定されている場合、座標参照システムは型にハードコーディングされず、ランタイム値になります。
GEOMETRY(srid) 座標参照系が Cartsian と認識され、 srid 値によって定義されているジオメトリ値を表します。 sridANYに設定されている場合、座標参照システムは型にハードコーディングされず、ランタイム値になります。
ARRAY < elementType > elementType 型の要素のシーケンスを構成する値を表します。
MAP < keyType,valueType > キーと値のペアのセットを構成する値を表します。
STRUCT < [fieldName : fieldType [NOT NULL][COMMENT str][, ...]] > フィールドのシーケンスで記述された構造体を持つ値を表します。
VARIANT 半構造化データを表します。
OBJECT フィールドのシーケンスで記述された構造体を持つ VARIANT で値を表します。

Important

Delta Lake では、VOID の種類はサポートされていません。

データ型の分類

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

整数数値型

整数の数値型は整数を表します。

真数型

正確な数値型は、10 進数を表します。

バイナリ浮動小数点型

バイナリ浮動小数点型では、指数とバイナリ表現を使用して、大きな範囲の数値をカバーします。

Numeric types

数値型は、すべての数値データ型を表します。

Date-time types

日付と時刻の型は、日付と時刻のコンポーネントを表します。

Geospatial types

地理空間の種類は、幾何学的オブジェクトまたは地理オブジェクトを表します。

Simple types

単純型は、シングルトン値を保持することによって定義される型です。

Complex types

Complex types are composed of multiple components of complex or simple types:

Language mappings

Applies to:check marked yes Databricks Runtime

Scala

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

import org.apache.spark.sql.types._
SQL type Data type Value type データ型にアクセスまたは作成する 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
year-month interval YearMonthIntervalType java.time.Period YearMonthIntervalType (3)
day-time interval DayTimeIntervalType java.time.Duration DayTimeIntervalType (3)
GEOGRAPHY(srid) GeographyType 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(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
VARIANT VariantType org.apache.spark.unsafe.type.VariantVal VariantType
OBJECT Not Supported Not supported Not supported

Java

Spark SQL データ型はパッケージ org.apache.spark.sql.types に定義されています。 データ型にアクセスまたは作成するには、org.apache.spark.sql.types.DataTypes に用意されているファクトリ メソッドを使用します。

SQL type Data Type Value type データ型にアクセスまたは作成する 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
year-month interval YearMonthIntervalType java.time.Period YearMonthIntervalType (3)
day-time interval DayTimeIntervalType java.time.Duration DayTimeIntervalType (3)
GEOGRAPHY(srid) GeographyType org.apache.spark.unsafe.type.GeographyVal GeographyType
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 Not Supported Not supported Not supported

Python

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

from pyspark.sql.types import *
SQL type Data type Value type データ型にアクセスまたは作成する 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()
year-month interval YearMonthIntervalType Not supported Not supported
day-time interval DayTimeIntervalType datetime.timedelta DayTimeIntervalType (3)
GEOGRAPHY(srid) GeographyType 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 Not Supported Not supported Not supported

R

SQL type Data type Value type データ型にアクセスまたは作成する API
TINYINT ByteType integer (1) 'byte'
SMALLINT ShortType integer (1) 'short'
INT IntegerType 整数 'integer'
BIGINT LongType integer (1) 'long'
FLOAT FloatType numeric (1) 'float'
DOUBLE DoubleType numeric 'double'
DECIMAL(p,s) DecimalType Not supported Not supported
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'
year-month interval YearMonthIntervalType Not supported Not supported
day-time interval DayTimeIntervalType Not supported Not supported
GEOGRAPHY(srid) Not supported Not supported Not supported
GEOMETRY(srid) Not supported Not supported Not supported
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 named list list(type='struct', fields=fields). fields は StructFields のシーケンスです。 (4)
StructField このフィールドのデータ型の値の型 (たとえば、データ型が IntegerType の StructField の場合は integer) list(name=name, type=dataType, nullable=[nullable]).(4)
VARIANT Not Supported Not supported Not supported
OBJECT Not Supported Not supported Not supported

(1) Numbers are converted to the domain at runtime. 範囲内の数値であることを確認してください。

(2) The optional value defaults to TRUE.

(3) Interval types

  • 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 値を持つことができるかどうかを示します。 既定のプランです。