次の方法で共有


データ型

適用対象:チェック済み: はい 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 値によって定義されている地理値を表します。 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 進数を表します。

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 は右端のフィールドです。 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 値を持つことができるかどうかを示します。 これは既定値です。