Types de données
S’applique à : Databricks SQL Databricks Runtime
Pour connaître les règles qui régissent le mode de résolution des conflits entre les types de données, consultez Règles relatives aux types de données SQL.
Types de données pris en charge
Azure Databricks prend en charge les types de données suivants :
Type de données | Description |
---|---|
BIGINT | Représente des nombres entiers signés de 8 octets. |
BINARY | Représente des valeurs de séquence d’octets. |
BOOLEAN | Représente des valeurs booléennes. |
DATE | Représente les valeurs des champs Année, Mois et Jour, sans fuseau horaire. |
DECIMAL(p,s) | Représente des nombres avec une précision maximale p et une échelle fixe s . |
DOUBLE | Représente des nombres à virgule flottante double précision de huit octets. |
FLOAT | Représente des nombres à virgule flottante simple précision de 4 octets. |
INT | Représente des nombres entiers signés de 4 octets. |
INTERVAL intervalQualifier | Représente des intervalles de temps sur une échelle de secondes ou de mois. |
VOID | Représente la valeur NULL non typée. |
SMALLINT | Représente des nombres entiers signés de 2 octets. |
STRING | Représente des valeurs de chaîne de caractères. |
TIMESTAMP | Représente les valeurs des champs Année, Mois, Jour, Heure, Minute et Seconde, avec le fuseau horaire local de la session. |
TIMESTAMP_NTZ | Représente des valeurs comprenant les valeurs des champs année, mois, jour, heure, minute et seconde. Toutes les opérations sont effectuées sans prendre en compte aucun fuseau horaire. |
TINYINT | Représente des nombres entiers signés de 1 octet. |
ARRAY < elementType > | Représente des valeurs qui composent une séquence d’éléments avec le type de elementType . |
MAP < keyType,valueType > | Représente des valeurs qui composent un jeu de paires clé-valeur. |
STRUCT < [fieldName : fieldType [NOT NULL][COMMENT str][, …]] > | Représente des valeurs avec la structure décrite par une séquence de champs. |
VARIANT | Représente des données semi-structurées. |
OBJECT | Représente des valeurs dans un VARIANT avec la structure décrite par un ensemble de champs. |
Important
Delta Lake ne prend pas en charge le type VOID
.
Classification des types de données
Les types de données sont regroupés dans les classes suivantes :
- Les types numériques intégraux représentent des nombres entiers :
- Les types numériques exacts représentent les nombres en base 10 :
- Les types à virgule flottante binaires utilisent des exposants et une représentation binaire pour couvrir une large plage de nombres :
- Les types numériques représentent tous les types de données numériques :
- Les types date-heure représentent les composants de date et d’heure :
- Les types simples sont des types définis par la conservation des valeurs singleton :
- Les types complexes sont des types composés de plusieurs composants de types complexes ou simples :
Mappages de langage
S’applique à : Databricks Runtime
Scala
Les types de données Spark SQL sont définis dans le package org.apache.spark.sql.types
. Pour y accéder, vous devez importer le package :
import org.apache.spark.sql.types._
Type SQL | Type de données | Type de valeur | API pour consulter ou créer un type de données |
---|---|---|---|
TINYINT | ByteType | Byte | ByteType |
SMALLINT | ShortType | Court | 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 |
intervalle année-mois | YearMonthIntervalType | java.time.Period | YearMonthIntervalType (3) |
intervalle jour-heure | 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 est une Seq de StructField. 4. |
StructField | Type de valeur du type de données de ce champ (par exemple, Int pour un StructField avec le type de données IntegerType) | StructField(name, dataType [, nullable]). 4 | |
VARIANT | VariantType | org.apache.spark.unsafe.type.VariantVal | VariantType |
OBJECT | Non pris en charge | Non pris en charge | Non pris en charge |
Java
Les types de données Spark SQL sont définis dans le package org.apache.spark.sql.types
. Pour consulter ou créer un type de données, utilisez les méthodes de fabrique fournies dans org.apache.spark.sql.types.DataTypes
.
Type SQL | Type de données | Type de valeur | API pour consulter ou créer un type de données |
---|---|---|---|
TINYINT | ByteType | byte ou Byte | DataTypes.ByteType |
SMALLINT | ShortType | short ou Short | DataTypes.ShortType |
INT | IntegerType | int ou Integer | DataTypes.IntegerType |
BIGINT | LongType | long ou Long | DataTypes.LongType |
FLOAT | FloatType | float ou Float | DataTypes.FloatType |
DOUBLE | DoubleType | double ou 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 ou 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 |
intervalle année-mois | YearMonthIntervalType | java.time.Period | YearMonthIntervalType (3) |
intervalle jour-heure | 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 est une liste ou un tableau de StructField. 4 |
StructField | Type de valeur du type de données de ce champ (par exemple, Int pour un StructField avec le type de données IntegerType) | DataTypes.createStructField(name, dataType, nullable) 4 | |
VARIANT | VariantType | org.apache.spark.unsafe.type.VariantVal | VariantType |
OBJECT | Non pris en charge | Non pris en charge | Non pris en charge |
Python
Les types de données Spark SQL sont définis dans le package pyspark.sql.types
. Pour y accéder, vous devez importer le package :
from pyspark.sql.types import *
Type SQL | Type de données | Type de valeur | API pour consulter ou créer un type de données |
---|---|---|---|
TINYINT | ByteType | int ou long. (1) | ByteType() |
SMALLINT | ShortType | int ou long. (1) | ShortType() |
INT | IntegerType | int ou 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() |
intervalle année-mois | YearMonthIntervalType | Non pris en charge | Non pris en charge |
intervalle jour-heure | DayTimeIntervalType | datetime.timedelta | DayTimeIntervalType (3) |
ARRAY | ArrayType | list, tuple ou array | ArrayType(elementType, [containsNull]).(2) |
MAP | MapType | dict | MapType(keyType, valueType, [valueContainsNull]).(2) |
STRUCT | StructType | list ou tuple | StructType(fields). field est un Seq de StructField. (4) |
StructField | Type de valeur du type de données de ce champ (par exemple, Int pour un StructField avec le type de données IntegerType) | StructField(name, dataType, [nullable]).(4) | |
VARIANT | VariantType | VariantVal | VariantType() |
OBJECT | Non pris en charge | Non pris en charge | Non pris en charge |
R
Type SQL | Type de données | Type de valeur | API pour consulter ou créer un type de données |
---|---|---|---|
TINYINT | ByteType | integer (1) | ‘byte’ |
SMALLINT | ShortType | integer (1) | ‘short’ |
INT | IntegerType | entier | ‘integer’ |
BIGINT | LongType | integer (1) | ‘long’ |
FLOAT | FloatType | numeric (1) | ‘float’ |
DOUBLE | DoubleType | numeric | ‘double’ |
DECIMAL(p,s) | DecimalType | Non pris en charge | Non pris en charge |
STRING | StringType | caractère | ‘string’ |
BINARY | BinaryType | raw | ‘binary’ |
BOOLEAN | BooleanType | logique | ‘bool’ |
TIMESTAMP | TimestampType | POSIXct | ‘timestamp’ |
TIMESTAMP_NTZ | TimestampNTZType | datetime.datetime | TimestampNTZType() |
DATE | DateType | Date | ‘date’ |
intervalle année-mois | YearMonthIntervalType | Non pris en charge | Non pris en charge |
intervalle jour-heure | DayTimeIntervalType | Non pris en charge | Non pris en charge |
ARRAY | ArrayType | vector ou list | list(type=’array’, elementType=elementType, containsNull=[containsNull]).(2) |
MAP | MapType | Environnement | list(type=’map’, keyType=keyType, valueType=valueType, valueContainsNull=[valueContainsNull]).(2) |
STRUCT | StructType | liste nommée | list(type=’struct’, fields=fields). fields est une Seq de StructField. (4) |
StructField | Type de valeur du type de données de ce champ (par exemple, integer pour un StructField avec le type de données IntegerType) | list(name=name, type=dataType, nullable=[nullable]).(4) | |
VARIANT | Non pris en charge | Non pris en charge | Non pris en charge |
OBJECT | Non pris en charge | Non pris en charge | Non pris en charge |
(1) Les nombres sont convertis en domaine au moment de l’exécution. Assurez-vous que les nombres se trouvent dans la plage.
(2) La valeur facultative est définie par défaut sur TRUE
.
(3) Types d’intervalle
YearMonthIntervalType([startField,] endField)
: représente un intervalle année-mois qui est constitué d’un sous-ensemble contigu des champs suivants :startField
est le champ le plus à gauche etendField
est le champ le plus à droite du type. Les valeurs valides destartField
etendField
sont0(MONTH)
et1(YEAR)
.DayTimeIntervalType([startField,] endField)
: représente un intervalle jour-heure qui est constitué d’un sous-ensemble contigu des champs suivants :startField
est le champ le plus à gauche etendField
est le champ le plus à droite du type. Les valeurs valides destartField
etendField
sont0(DAY)
,1(HOUR)
,2(MINUTE)
et3(SECOND)
.
(4) StructType
StructType(fields)
Représente des valeurs avec la structure décrite par une séquence, une liste ou un tableau de champsStructField
. Deux champs portant le même nom ne sont pas autorisés.StructField(name, dataType, nullable)
Représente un champ dans unStructType
. Le nom d’un champ est indiqué parname
. Le type de données d’un champ est indiqué par dataType.nullable
indique si les valeurs de ces champs peuvent avoir des valeursnull
. Il s’agit de la valeur par défaut.