Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:
Databricks SQL
Databricks Runtime
Para conhecer as regras que regem como os conflitos entre os tipos de dados são resolvidos, confira Regras de tipos de dados SQL.
Tipos de dados com suporte
O Azure Databricks dá suporte aos seguintes tipos de dados:
| Tipo de Dados | Description |
|---|---|
| BIGINT | Representa números inteiros com sinal de 8 bytes. |
| BINARY | Representa valores de sequência de byte. |
| BOOLEAN | Representa valores Boolianos. |
| DATE | Representa valores de campos de ano, mês e dia, sem um fuso horário. |
| DECIMAL(p,s) | Representa os números com precisão p máxima e escala s fixa. |
| DOUBLE | Representa números de ponto flutuante de 8 bytes com precisão dupla. |
| FLOAT | Representa números de ponto flutuante de 4 bytes com precisão simples. |
| INT | Representa números inteiros com sinal de 4 bytes. |
| INTERVAL intervalQualifier | Representa intervalos de tempo em uma escala de segundos ou meses. |
| VOID | Representa o NULL não tipado. |
| SMALLINT | Representa números inteiros com sinal de 2 bytes. |
| STRING | Representa valores de cadeia de caracteres. |
| TIMESTAMP | Representa valores de campos de ano, mês, dia, hora, minuto e segundo, com o fuso horário local da sessão. |
| TIMESTAMP_NTZ | Representa valores que compõem valores de campos ano, mês, dia, hora, minuto e segundo. Todas as operações são executadas sem levar em conta nenhum fuso horário. |
| TINYINT | Representa números inteiros com sinal de 1 byte. |
| GEOGRAPHY(srid) | Representa valores de geografia cujo sistema de referência de coordenadas é geográfico (longitude e latitude em graus) e é definido pelo srid valor. Se srid for definido como ANY, o sistema de referência de coordenadas não é codificado no tipo e se torna um valor em tempo de execução. |
| GEOMETRY(srid) | Representa valores de geometria cujo sistema de referência de coordenadas é entendido como Cartsian e é definido pelo srid valor. Se srid for definido como ANY, o sistema de referência de coordenadas não é codificado no tipo e se torna um valor em tempo de execução. |
| ElementType ARRAY <> | Representa valores que compõem uma sequência de elementos com o tipo elementType. |
| MAP < keyType,valueType > | Representa valores que incluem um conjunto de pares chave-valor. |
| STRUCT < [fieldName: fieldType [NOT NULL][COMMENT str][, ...]] > | Representa valores com a estrutura descrita por uma sequência de campos. |
| VARIANT | Representa dados semiestruturados. |
| OBJECT | Representa valores em uma VARIANT com a estrutura descrita por um conjunto de campos. |
Important
O Delta Lake não dá suporte para o tipo VOID.
Classificação de tipo de dados
Os tipos de dados são agrupados nas seguintes classes:
Tipos numéricos integrais
Tipos numéricos integrais representam números inteiros:
Tipos numéricos exatos
Os tipos numéricos exatos representam números base-10:
Tipos de ponto flutuante binário
Os tipos de ponto flutuante binário usam expoentes e uma representação binária para abranger uma grande variedade de números:
Tipos numéricos
Os tipos numéricos representam todos os tipos de dados numéricos:
Tipos de data e hora
Os tipos de data e hora representam componentes de data e hora:
Tipos geoespaciais
Os tipos geoespaciais representam objetos geométricos ou geográficos:
Tipos simples
Tipos simples são tipos definidos por meio da retenção de valores singleton:
Tipos complexos
Tipos complexos são compostos por vários componentes de tipos complexos ou simples:
Mapeamentos de idioma
Aplica-se a:
Databricks Runtime
Scala
Tipos de dados de SQL do Spark são definidos no pacote org.apache.spark.sql.types. Você pode acessá-los importando o pacote:
import org.apache.spark.sql.types._
| Tipo SQL | Tipo de dados | Tipo de valor | API para acessar ou criar tipo de dados |
|---|---|---|---|
| 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 | booleano | BooleanType |
| TIMESTAMP | TimestampType | java.sql.Timestamp | TimestampType |
| TIMESTAMP_NTZ | TimestampNTZType | java.time.LocalDateTime | TimestampNTZType |
| DATE | DateType | java.sql.Date | DateType |
| intervalo de ano-mês | YearMonthIntervalType | java.time.Period | YearMonthIntervalType (3) |
| intervalo de dia-tempo | DayTimeIntervalType | java.time.Duration | DayTimeIntervalType (3) |
| GEOGRAPHY(srid) | TipoDeGeografia | org.apache.spark.unsafe.type.GeographyVal | TipoGeografia |
| 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). o campo é uma Seq de StructField. 4. |
| StructField | O tipo de valor do tipo de dados desse campo (por exemplo, Int para um StructField com o tipo de dados IntegerType) | StructField(nome, tipo de dado [, anulável]). 4 | |
| VARIANT | VariantType | org.apache.spark.unsafe.type.VariantVal | VariantType |
| OBJECT | Sem suporte | Sem suporte | Sem suporte |
Java
Tipos de dados de SQL do Spark são definidos no pacote org.apache.spark.sql.types. Para acessar ou criar um tipo de dados, use os métodos de fábrica fornecidos no org.apache.spark.sql.types.DataTypes.
| Tipo SQL | Tipo de Dados | Tipo de valor | API para acessar ou criar tipo de dados |
|---|---|---|---|
| TINYINT | ByteType | byte ou Byte | DataTypes.ByteType |
| SMALLINT | ShortType | short ou Short | DataTypes.ShortType |
| INT | IntegerType | int ou Inteiro | DataTypes.IntegerType |
| BIGINT | LongType | longo ou Longo | DataTypes.LongType |
| FLOAT | FloatType | derivar ou Derivar | DataTypes.FloatType |
| DOUBLE | DoubleType | duplo ou Duplo | 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 | booliana ou Booliana | 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 ano-mês | YearMonthIntervalType | java.time.Period | YearMonthIntervalType (3) |
| intervalo de dia-tempo | DayTimeIntervalType | java.time.Duration | DayTimeIntervalType (3) |
| GEOGRAPHY(srid) | GeographyType | org.apache.spark.unsafe.type.GeographyVal | TipoGeografia |
| 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). os campos são uma lista ou raiz de StructField. 4 |
| StructField | O tipo de valor do tipo de dados desse campo (por exemplo, int para um StructField com o tipo de dados IntegerType) | DataTypes.createStructField(name, dataType, nullable) 4 | |
| VARIANT | VariantType | org.apache.spark.unsafe.type.VariantVal | VariantType |
| OBJECT | Sem suporte | Sem suporte | Sem suporte |
Python
Tipos de dados de SQL do Spark são definidos no pacote pyspark.sql.types. Você pode acessá-los importando o pacote:
from pyspark.sql.types import *
| Tipo SQL | Tipo de dados | Tipo de valor | API para acessar ou criar tipo de dados |
|---|---|---|---|
| TINYINT | ByteType | int ou longo. (1) | ByteType() |
| SMALLINT | ShortType | int ou longo. (1) | ShortType() |
| INT | IntegerType | int ou longo | IntegerType() |
| BIGINT | LongType | long (1) | LongType() |
| FLOAT | FloatType | float (1) | FloatType() |
| DOUBLE | DoubleType | derivar | DoubleType() |
| DECIMAL(p,s) | DecimalType | decimal.Decimal | DecimalType() |
| STRING | StringType | cadeia | 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 ano-mês | YearMonthIntervalType | Sem suporte | Sem suporte |
| intervalo de dia-tempo | DayTimeIntervalType | datetime.timedelta | DayTimeIntervalType (3) |
| GEOGRAPHY(srid) | TipoDeGeografia | GeographyVal | GeographyType() |
| GEOMETRY(srid) | GeometryType | GeometryVal | GeometryType() |
| ARRAY | ArrayType | lista, tupla ou matriz | ArrayType(elementType, [containsNull]). (2) |
| MAP | MapType | dict | MapType(keyType, valueType, [valueContainsNull]). (2) |
| STRUCT | StructType | lista ou tupla | StructType(fields). o campo é uma Seq de StructField. (4) |
| StructField | O tipo de valor do tipo de dados desse campo (por exemplo, Int para um StructField com o tipo de dados IntegerType) | StructField(name, dataType, [nullable]). (4) | |
| VARIANT | VariantType | VariantVal | VariantType() |
| OBJECT | Sem suporte | Sem suporte | Sem suporte |
R
| Tipo SQL | Tipo de dados | Tipo de valor | API para acessar ou criar tipo de dados |
|---|---|---|---|
| TINYINT | ByteType | inteiro (1) | 'byte' |
| SMALLINT | ShortType | inteiro (1) | 'short' |
| INT | IntegerType | inteiro | 'integer' |
| BIGINT | LongType | inteiro (1) | 'long' |
| FLOAT | FloatType | numérico (1) | 'float' |
| DOUBLE | DoubleType | numeric | 'double' |
| DECIMAL(p,s) | DecimalType | Sem suporte | Sem suporte |
| STRING | StringType | caractere | '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 ano-mês | YearMonthIntervalType | Sem suporte | Sem suporte |
| intervalo de dia-tempo | DayTimeIntervalType | Sem suporte | Sem suporte |
| GEOGRAPHY(srid) | Sem suporte | Sem suporte | Sem suporte |
| GEOMETRY(srid) | Sem suporte | Sem suporte | Sem suporte |
| ARRAY | ArrayType | vetor ou lista | list(type='array', elementType=elementType, containsNull=[containsNull]). (2) |
| MAP | MapType | ambiente | list(type='map', keyType=keyType, valueType=valueType, valueContainsNull=[valueContainsNull]). (2) |
| STRUCT | StructType | lista nomeada | list(type='struct', fields=fields). o campo é uma Seq de StructField. (4) |
| StructField | O tipo de valor do tipo de dados desse campo (por exemplo, inteiro para um StructField com o tipo de dados IntegerType) | list(name=name, type=dataType, nullable=[nullable]). (4) | |
| VARIANT | Sem suporte | Sem suporte | Sem suporte |
| OBJECT | Sem suporte | Sem suporte | Sem suporte |
(1) Os números são convertidos para o domínio durante o tempo de execução. Verifique se os números estão dentro do intervalo.
(2) O valor opcional usa como padrão TRUE.
(3) Tipos de intervalo
YearMonthIntervalType([startField,] endField): representa um intervalo de ano/mês que é feito de um subconjunto contíguo dos seguintes campos:startFieldé o campo mais à esquerda eendFieldé o campo mais à direita do tipo. Valores válidos destartFieldeendFieldsão0(MONTH)e1(YEAR).DayTimeIntervalType([startField,] endField): representa um intervalo de dia-horário que é feito de um subconjunto contíguo dos seguintes campos:startFieldé o campo mais à esquerda eendFieldé o campo mais à direita do tipo. Valores válidos destartFieldeendFieldsão0(DAY),1(HOUR),2(MINUTE),3(SECOND).
(4)StructType
-
StructType(fields)Representa valores com a estrutura descrita por uma sequência, lista ou raiz deStructFields (campos). Dois campos com o mesmo nome não são permitidos. -
StructField(name, dataType, nullable)Representa um campo em umStructType. O nome de um campo é indicado porname. O tipo de dados de um campo é indicado por dataType.nullableindica se os valores desses campos podem ter valoresnull. Esse é o padrão.