Tipos de datos
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.
Tipos de datos admitidos
Azure Databricks admite los siguientes tipos de datos:
Tipo de datos | Descripción |
---|---|
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. |
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 un VARIANT con la estructura descrita por un conjunto de campos. |
Importante
Delta Lake no admite el tipo VOID
.
Clasificación de los tipos de datos
Los tipos de datos se agrupan en las siguientes clases:
- Los tipos numéricos integrales representan números enteros:
- Los tipos numéricos exactos representan números de base 10:
- Los tipos de números de punto flotante binarios usan exponentes y una representación binaria para cubrir un gran intervalo de números:
- Los tipos numéricos representan todos los tipos de datos numéricos:
- Los tipos de fecha y hora representan componentes de fecha y hora:
- Los tipos simples son tipos definidos por la conservación de valores singleton:
- Los tipos complejos son tipos compuestos por varios componentes de tipos simples o complejos:
Asignaciones de lenguaje
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 datos | 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 year-month | YearMonthIntervalType | java.time.Period | YearMonthIntervalType (3) |
intervalo day-time | 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 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 compatible | No compatible | No compatible |
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 year-month | YearMonthIntervalType | java.time.Period | YearMonthIntervalType (3) |
intervalo day-time | 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 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 compatible | No compatible | No compatible |
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 datos | 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 year-month | YearMonthIntervalType | No compatible | No compatible |
intervalo day-time | DayTimeIntervalType | datetime.timedelta | DayTimeIntervalType (3) |
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 compatible | No compatible | No compatible |
R
Tipo SQL | Tipo de datos | Tipo de valor | API para acceder al tipo de datos o crearlo |
---|---|---|---|
TINYINT | ByteType | integer (1) | ‘byte’ |
SMALLINT | ShortType | integer (1) | ‘short’ |
INT | IntegerType | integer | ‘integer’ |
BIGINT | LongType | integer (1) | ‘long’ |
FLOAT | FloatType | numeric (1) | ‘float’ |
DOUBLE | DoubleType | NUMERIC | ‘double’ |
DECIMAL(p,s) | DecimalType | No compatible | No compatible |
STRING | StringType | character | ‘string’ |
BINARY | BinaryType | raw | ‘binary’ |
BOOLEAN | BooleanType | lógicos | ‘bool’ |
TIMESTAMP | TimestampType | POSIXct | ‘timestamp’ |
TIMESTAMP_NTZ | TimestampNTZType | datetime.datetime | TimestampNTZType() |
DATE | DateType | Date | ‘date’ |
intervalo year-month | YearMonthIntervalType | No compatible | No compatible |
intervalo day-time | DayTimeIntervalType | No compatible | No compatible |
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 con nombre | list(type=’struct’, fields=fields). 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 compatible | No compatible | No compatible |
OBJECT | No compatible | No compatible | No compatible |
(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 yendField
es el campo situado más a la derecha del tipo. Los valores válidos destartField
yendField
son0(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:startField
es el campo situado más a la izquierda yendField
es el campo situado más a la derecha del tipo. Los valores válidos destartField
yendField
son0(DAY)
,1(HOUR)
,2(MINUTE)
,3(SECOND)
.
(4) StructType
StructType(fields)
Representa valores con la estructura descrita por una secuencia, lista o matriz deStructField
(campos). 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.nullable
indica si los valores de estos campos pueden tener valoresnull
. Este es el valor predeterminado.