Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:
Databricks SQL
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:
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:startFieldes el campo situado más a la izquierda yendFieldes el campo situado más a la derecha del tipo. Los valores válidos destartFieldyendFieldson0(MONTH)y1(YEAR).DayTimeIntervalType([startField,] endField): representa un intervalo de día y hora que se compone de un subconjunto contiguo de los campos siguientes:startFieldes el campo situado más a la izquierda yendFieldes el campo situado más a la derecha del tipo. Los valores válidos destartFieldyendFieldson0(DAY),1(HOUR),2(MINUTE),3(SECOND).
(4)StructType
-
StructType(fields)Representa valores con la estructura descrita por una secuencia, lista o matriz de camposStructField. No se permiten dos campos con el mismo nombre. -
StructField(name, dataType, nullable)Representa un campo en unStructType. El nombre de un campo se indica mediantename. El tipo de datos de un campo se indica mediante dataType.nullableindica si los valores de estos campos pueden tener valoresnull. Este es el valor predeterminado.