Compartir a través de


Tipos de datos

Se aplica a:casilla marcada como Sí Databricks SQL casilla marcada como Sí Databricks Runtime

Para consultar las reglas que rigen cómo se resuelven los conflictos entre los tipos de datos, consulte Reglas de tipo de datos de SQL.

Supported data types (Tipos de datos admitidos)

Azure Databricks admite los siguientes tipos de datos:

Tipo de datos Description
BIGINT Representa números enteros con signo de 8 bytes.
BINARY Representa valores de secuencia de bytes.
BOOLEAN Representa valores booleanos.
DATE Representa valores que constan de campos de año, mes y día, sin una zona horaria.
DECIMAL(p,s) Representa números con precisión máxima (p) escala fija (s).
DOUBLE Representa números de punto flotante de doble precisión de 8 bytes.
FLOAT Representa números de punto flotante de precisión sencilla de 4 bytes.
INT Representa números enteros con signo de 4 bytes.
INTERVAL intervalQualifier Representa intervalos de tiempo en una escala de segundos o meses.
VOID Representa el valor NULL sin tipo.
SMALLINT Representa números enteros con signo de 2 bytes.
STRING Representa valores de cadenas de caracteres.
TIMESTAMP Representa valores que constan de campos de año, mes, día, hora, minuto y segundo, con la zona horaria local de la sesión.
TIMESTAMP_NTZ Representa valores que comprenden valores de los campos: año, mes, día, hora, minuto y segundo. Todas las operaciones se realizan sin tener en cuenta ninguna zona horaria.
TINYINT Representa números enteros con signo de 1 byte.
GEOGRAPHY(srid) Representa valores geográficos cuyo sistema de referencia de coordenadas es geográfico (longitud y latitud en grados) y se define mediante el srid valor . Si srid se establece en ANY, el sistema de referencia de coordenadas no está definido rígidamente dentro del tipo y se convierte en un valor determinado en tiempo de ejecución.
GEOMETRY(srid) Representa valores de geometría cuyo sistema de referencia de coordenadas se entiende como Cartsian y se define mediante el srid valor . Si srid se establece en ANY, el sistema de referencia de coordenadas no está definido rígidamente dentro del tipo y se convierte en un valor determinado en tiempo de ejecución.
ARRAY < elementType > Representa valores que constan de una secuencia de elementos con el tipo de elementType.
MAP < keyType,valueType > Representa valores que constan de un conjunto de pares clave-valor.
STRUCT < [fieldName : fieldType [NOT NULL][COMMENT str][, ...]] > Representa valores con la estructura descrita por una secuencia de campos.
VARIANT Representa datos semiestructurados.
OBJECT Representa los valores de una VARIANT con la estructura descrita por un conjunto de campos.

Important

Delta Lake no admite el tipo VOID.

Clasificación de los tipos de datos

Los tipos de datos se agrupan en las siguientes clases:

Tipos numéricos integrales

Los tipos numéricos enteros representan números enteros:

Tipos numéricos exactos

Los tipos numéricos exactos representan números base-10:

Tipos de punto flotante binarios

Los tipos de punto flotante binario usan exponentes y una representación binaria para cubrir una gran variedad de números:

Tipos numéricos

Los tipos numéricos representan todos los tipos de datos numéricos:

Tipos de fecha y hora

Los tipos de fecha y hora representan componentes de fecha y hora:

Tipos geoespaciales

Los tipos geoespaciales representan objetos geométricos o geográficos:

Tipos simples

Los tipos simples son tipos definidos mediante la retención de valores singleton:

Tipos complejos

Los tipos complejos se componen de varios componentes de tipos complejos o simples:

Mapeos de idioma

Se aplica a:comprobar que se ha marcado sí Databricks Runtime

Scala

Los tipos de datos de Spark SQL se definen en el paquete org.apache.spark.sql.types. Para acceder a ellos, importe el paquete:

import org.apache.spark.sql.types._
Tipo SQL Tipo de dato Tipo de valor API para acceder al tipo de datos o crearlo
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 Boolean BooleanType
TIMESTAMP TimestampType java.sql.Timestamp TimestampType
TIMESTAMP_NTZ TimestampNTZType java.time.LocalDateTime TimestampNTZType
DATE DateType java.sql.Date DateType
intervalo de año-mes YearMonthIntervalType java.time.Period YearMonthIntervalType (3)
intervalo de tiempo de día 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 es una secuencia de StructField. 4.
StructField Tipo de valor del tipo de datos de este campo (por ejemplo, Int para un elemento StructField con el tipo de datos IntegerType) StructField(name, dataType [, nullable]). 4
VARIANT VariantType org.apache.spark.unsafe.type.VariantVal VariantType
OBJECT No está soportado No está soportado No está soportado

Java

Los tipos de datos de Spark SQL se definen en el paquete org.apache.spark.sql.types. Para acceder a un tipo de datos o crearlo, use los Factory Method proporcionados en org.apache.spark.sql.types.DataTypes.

Tipo SQL Tipo de datos Tipo de valor API para acceder al tipo de datos o crearlo
TINYINT ByteType byte o Byte DataTypes.ByteType
SMALLINT ShortType short o Short DataTypes.ShortType
INT IntegerType int o Integer DataTypes.IntegerType
BIGINT LongType long o Long DataTypes.LongType
FLOAT FloatType float o Float DataTypes.FloatType
DOUBLE DoubleType double o 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 o 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
intervalo de año-mes YearMonthIntervalType java.time.Period TipoIntervaloAñoMes (3)
intervalo de tiempo de día DayTimeIntervalType java.time.Duration DayTimeIntervalType (3)
GEOGRAPHY(srid) GeographyType org.apache.spark.unsafe.type.GeographyVal Tipo de Geografía
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 es una lista o matriz de StructField. 4
StructField Tipo de valor del tipo de datos de este campo (por ejemplo, int para un elemento StructField con el tipo de datos IntegerType) DataTypes.createStructField(name, dataType, nullable) 4
VARIANT VariantType org.apache.spark.unsafe.type.VariantVal VariantType
OBJECT No está soportado No está soportado No está soportado

Python

Los tipos de datos de Spark SQL se definen en el paquete pyspark.sql.types. Para acceder a ellos, importe el paquete:

from pyspark.sql.types import *
Tipo SQL Tipo de dato Tipo de valor API para acceder al tipo de datos o crearlo
TINYINT ByteType int o long. (1) ByteType()
SMALLINT ShortType int o long. (1) ShortType()
INT IntegerType int o 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()
intervalo de año-mes YearMonthIntervalType No está soportado No está soportado
intervalo de tiempo de día DayTimeIntervalType datetime.timedelta TipoDeIntervaloDeTiempoDuranteElDía (3)
GEOGRAPHY(srid) TipoDeGeografía GeographyVal GeographyType()
GEOMETRY(srid) GeometryType GeometryVal GeometryType()
ARRAY ArrayType lista, tupla o matriz ArrayType(elementType, [containsNull]). (2)
MAP MapType dict MapType(keyType, valueType, [valueContainsNull]). (2)
STRUCT StructType lista o tupla StructType(fields). field es una secuencia de StructField. (4)
StructField Tipo de valor del tipo de datos de este campo (por ejemplo, Int para un elemento StructField con el tipo de datos IntegerType) StructField(name, dataType, [nullable]). (4)
VARIANT VariantType VariantVal VariantType()
OBJECT No está soportado No está soportado No está soportado

R

Tipo SQL Tipo de dato Tipo de valor API para acceder al tipo de datos o crearlo
TINYINT ByteType entero (1) 'byte'
SMALLINT ShortType entero (1) 'short'
INT IntegerType integer 'integer'
BIGINT LongType entero (1) 'long'
FLOAT FloatType numeric (1) 'float'
DOUBLE DoubleType numeric 'double'
DECIMAL(p,s) DecimalType No está soportado No está soportado
STRING StringType character 'string'
BINARY BinaryType raw 'binary'
BOOLEAN BooleanType logical 'bool'
TIMESTAMP TimestampType POSIXct 'timestamp'
TIMESTAMP_NTZ TimestampNTZType datetime.datetime TimestampNTZType()
DATE DateType Date 'date'
intervalo de año-mes YearMonthIntervalType No está soportado No está soportado
intervalo de tiempo de día DayTimeIntervalType No está soportado No está soportado
GEOGRAPHY(srid) No está soportado No está soportado No está soportado
GEOMETRY(srid) No está soportado No está soportado No está soportado
ARRAY ArrayType vector o lista list(type='array', elementType=elementType, containsNull=[containsNull]). (2)
MAP MapType environment list(type='map', keyType=keyType, valueType=valueType, valueContainsNull=[valueContainsNull]). (2)
STRUCT StructType lista nombrada lista(tipo='estructura', campos=campos). fields es una secuencia de StructField. (4)
StructField Tipo de valor del tipo de datos de este campo (por ejemplo, integer para un elemento StructField con el tipo de datos IntegerType) list(name=name, type=dataType, nullable=[nullable]). (4)
VARIANT No está soportado No está soportado No está soportado
OBJECT No está soportado No está soportado No está soportado

(1) Los números se convierten en el dominio en tiempo de ejecución. Asegúrese de que los números estén dentro del intervalo.

(2) El valor opcional tiene como valor predeterminado TRUE.

(3) Tipos de intervalo

  • YearMonthIntervalType([startField,] endField): representa un intervalo de año y mes que se compone de un subconjunto contiguo de los campos siguientes:

    startField es el campo situado más a la izquierda y endField es el campo situado más a la derecha del tipo. Los valores válidos de startField y endField son 0(MONTH) y 1(YEAR).

  • DayTimeIntervalType([startField,] endField): representa un intervalo de día y hora que se compone de un subconjunto contiguo de los campos siguientes:

    startField es el campo situado más a la izquierda y endField es el campo situado más a la derecha del tipo. Los valores válidos de startField y endField son 0(DAY), 1(HOUR), 2(MINUTE), 3(SECOND).

(4)StructType

  • StructType(fields) Representa valores con la estructura descrita por una secuencia, lista o matriz de campos StructField. No se permiten dos campos con el mismo nombre.
  • StructField(name, dataType, nullable) Representa un campo en un StructType. El nombre de un campo se indica mediante name. El tipo de datos de un campo se indica mediante dataType. nullable indica si los valores de estos campos pueden tener valores null. Este es el valor predeterminado.