Partage via


Types de données

S’applique à :case marquée oui Databricks SQL case marquée oui 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 Descriptif
BIGINT Représente des nombres entiers signés de 8 octets.
BINAIRE 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.
FLOTTER 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.
VIDE Représente la valeur NULL non typée.
SMALLINT Représente des nombres entiers signés de 2 octets.
CHAÎNE Représente des valeurs de chaîne de caractères.
HORODATAGE 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.
VARIANTE Représente des données semi-structurées.
OBJET 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 à virgule flottante binaires utilisent des exposants et une représentation binaire pour couvrir une large plage de nombres :

Mappages de langage

S’applique à :oui coché Databricks Runtime

Langage de programmation 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 Octet ByteType
SMALLINT ShortType Court ShortType
INT IntegerType Int IntegerType
BIGINT LongType Long LongType
FLOTTER FloatType Flotter FloatType
DOUBLE DoubleType Double DoubleType
DECIMAL(p,s) DecimalType java.math.BigDecimal DecimalType
CHAÎNE TypeDeChaîne Chaîne TypeDeChaîne
BINAIRE BinaryType Array[Byte] BinaryType
BOOLEAN Type Booléen Booléen Type Booléen
HORODATAGE Horodatage java.sql.Timestamp Horodatage
TIMESTAMP_NTZ TimestampNTZType java.time.LocalDateTime TimestampNTZType
DATE DateType java.sql.Date DateType
intervalle année-mois Type d'intervalle année-mois java.time.Period TypeIntervalleAnnéeMois (3)
intervalle jour-heure TypeDIntervalleDeJour java.time.Duration DayTimeIntervalType (3)
TABLEAU Type de Tableau scala.collection.Seq ArrayType(elementType [, containsNull]). (2)
CARTE TypeDeCarte scala.collection.Map TypeDeCarte(cléType, valeurType [, valeurContientNull]). (2)
STRUCT Type de Structure 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 [, peut être nul]). 4
VARIANTE TypeDeVariante org.apache.spark.unsafe.type.VariantVal TypeDeVariante
OBJET 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
FLOTTER 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).
CHAÎNE TypeDeChaîne Chaîne DataTypes.StringType
BINAIRE BinaryType byte[] TypesDeDonnées.TypeBinaire
BOOLEAN Type Booléen boolean ou Boolean DataTypes.BooleanType
HORODATAGE Horodatage java.sql.Timestamp DataTypes.TimestampType
TIMESTAMP_NTZ TimestampNTZType java.time.LocalDateTime DataTypes.TimestampNTZType
DATE DateType java.sql.Date DataTypes.DateType
intervalle année-mois Type d'intervalle année-mois java.time.Period TypeIntervalleAnnéeMois (3)
intervalle jour-heure TypeDIntervalleDeJour java.time.Duration DayTimeIntervalType (3)
TABLEAU Type de Tableau ava.util.List DataTypes.createArrayType(elementType [, containsNull]). (2)
CARTE TypeDeCarte java.util.Map DataTypes.createMapType(keyType, valueType [, valueContainsNull]). (2)
STRUCT Type de Structure 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
VARIANTE TypeDeVariante org.apache.spark.unsafe.type.VariantVal TypeDeVariante
OBJET 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()
FLOTTER FloatType float (1) FloatType()
DOUBLE DoubleType flotter DoubleType()
DECIMAL(p,s) DecimalType décimal. Décimal DecimalType()
CHAÎNE TypeDeChaîne ficelle StringType()
BINAIRE BinaryType bytearray BinaryType()
BOOLEAN Type Booléen Bool BooleanType()
HORODATAGE Horodatage datetime.datetime.datetime TimestampType()
TIMESTAMP_NTZ TimestampNTZType datetime.datetime.datetime TimestampNTZType()
DATE DateType datetime.date DateType()
intervalle année-mois Type d'intervalle année-mois Non pris en charge Non pris en charge
intervalle jour-heure TypeDIntervalleDeJour datetime.timedelta DayTimeIntervalType (3)
TABLEAU Type de Tableau list, tuple ou array ArrayType(elementType, [containsNull]). (2)
CARTE TypeDeCarte dictionnaire MapType(keyType, valueType, [valueContainsNull]). (2)
STRUCT Type de Structure 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)
VARIANTE TypeDeVariante VariantVal VariantType()
OBJET 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 entier (1) 'byte'
SMALLINT ShortType entier (1) 'short'
INT IntegerType entier entier
BIGINT LongType entier (1) 'long'
FLOTTER FloatType numérique (1) flotter
DOUBLE DoubleType numérique double
DECIMAL(p,s) DecimalType Non pris en charge Non pris en charge
CHAÎNE TypeDeChaîne caractère chaîne
BINAIRE BinaryType Cru binaire
BOOLEAN Type Booléen logique 'bool'
HORODATAGE Horodatage POSIXct horodatage
TIMESTAMP_NTZ TimestampNTZType datetime.datetime.datetime TimestampNTZType()
DATE DateType Date (Jour/Mois/Année) 'date'
intervalle année-mois Type d'intervalle année-mois Non pris en charge Non pris en charge
intervalle jour-heure TypeDIntervalleDeJour Non pris en charge Non pris en charge
TABLEAU Type de Tableau vector ou list list(type='array', elementType=elementType, containsNull=[containsNull]). (2)
CARTE TypeDeCarte Environnement list(type='map', keyType=keyType, valueType=valueType, valueContainsNull=[valueContainsNull]). (2)
STRUCT Type de Structure liste nommée liste(type='struct', champs=champs). 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)
VARIANTE Non pris en charge Non pris en charge Non pris en charge
OBJET 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 et endField est le champ le plus à droite du type. Les valeurs valides de startField et endField sont 0(MONTH) et 1(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 et endField est le champ le plus à droite du type. Les valeurs valides de startField et endField sont 0(DAY), 1(HOUR), 2(MINUTE) et 3(SECOND).

(4)StructType

  • StructType(fields) Représente des valeurs avec la structure décrite par une séquence, une liste ou un tableau de champs StructField. Deux champs portant le même nom ne sont pas autorisés.
  • StructField(name, dataType, nullable) Représente un champ dans un StructType. Le nom d’un champ est indiqué par name. Le type de données d’un champ est indiqué par dataType. nullable indique si les valeurs de ces champs peuvent avoir des valeurs null. Il s’agit de la valeur par défaut.