次の方法で共有


データ型

適用対象:「はい」のチェック マーク 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 の種類はサポートされていません。

データ型の分類

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

  • 2 進浮動小数点型では、指数と 2 進表現を使用して広範囲の数値を扱います。

言語マッピング

適用対象:チェック マークがオン 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 は右端のフィールドです。 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 値を持つことができるかどうかを示します。 既定のプランです。