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: SQL do Databricks
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 | Descrição |
---|---|
BIGINT | Representa números inteiros com sinal de 8 bytes. |
BINÁRIO | Representa valores de sequência de byte. |
BOOLIANO | Representa valores Boolianos. |
DATA | 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. |
DUPLICAR | Representa números de ponto flutuante de 8 bytes com precisão dupla. |
FLUTUAR | 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. |
VAZIO | Representa o NULL não tipado. |
SMALLINT | Representa números inteiros com sinal de 2 bytes. |
CORDA | 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. |
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. |
de OBJETO | Representa valores em um VARIANT com a estrutura descrita por uma sequência de campos. |
Importante
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 exatos representam números de base 10:
- Tipos binários de ponto flutuante usam expoentes e uma representação binária para cobrir um grande intervalo de números:
- Tipos numéricos representam todos os tipos de dados numéricos:
- Tipos de data/hora representam os componentes de data e hora:
- Tipos simples são tipos definidos por conter valores singleton:
- Tipos complexos são tipos compostos de vários componentes de tipos simples ou complexos:
Mapeamentos de idioma
Aplica-se a: Databricks Runtime
Scala (linguagem de programação)
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 | Tipo de Byte | byte | Tipo de Byte |
SMALLINT | Tipo curto | Curto | Tipo curto |
INT | IntegerType | Int | IntegerType |
BIGINT | LongType | long | LongType |
FLUTUAR | TipoFlutuante | Flutuar | TipoFlutuante |
DUPLICAR | DoubleType | Duplo | DoubleType |
DECIMAL(p,s) | TipoDecimal | java.math.BigDecimal | TipoDecimal |
CORDA | TipoString | fio | TipoString |
BINÁRIO | TipoBinário | Array[Byte] | TipoBinário |
BOOLIANO | Tipo Booleano | Booliano | Tipo Booleano |
TIMESTAMP | Tipo de Timestamp | java.sql.Timestamp | Tipo de Timestamp |
TIMESTAMP_NTZ | Tipo de TimestampNTZ | java.time.LocalDateTime | Tipo de TimestampNTZ |
DATA | TipoDeData | java.sql.Date | TipoDeData |
intervalo de ano-mês | TipoIntervaloAnoMês | java.time.Period | TipoIntervaloAnoMês (3) |
intervalo de dia-tempo | TipoIntervaloDiaHora | java.time.Duration | DayTimeIntervalType (3) |
ARRAY | Tipo de Array | scala.collection.Seq | ArrayType(tipoElemento [, contémNull]) (2) |
MAPA | TipoDeMapa | scala.collection.Map | MapType(keyType, valueType [, valorContémNulo]). (2) |
ESTRUTURA | TipoDeEstrutura | 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 [, aceita nulo]). 4 | |
variant | TipoDeVariante | org.apache.spark.unsafe.type.VariantVal | TipoDeVariante |
de OBJETO | 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 | Tipo de Byte | byte ou Byte | DataTypes.ByteType |
SMALLINT | Tipo curto | short ou Short | DataTypes.ShortType |
INT | IntegerType | int ou Inteiro | DataTypes.IntegerType |
BIGINT | LongType | longo ou Longo | DataTypes.LongType |
FLUTUAR | TipoFlutuante | derivar ou Derivar | DataTypes.FloatType |
DUPLICAR | DoubleType | duplo ou Duplo | DataTypes.DoubleType |
DECIMAL(p,s) | TipoDecimal | java.math.BigDecimal | DataTypes.createDecimalType() DataTypes.createDecimalType(precision, scale). |
CORDA | TipoString | fio | DataTypes.StringType |
BINÁRIO | TipoBinário | byte[] | DataTypes.BinaryType |
BOOLIANO | Tipo Booleano | booliana ou Booliana | DataTypes.BooleanType |
TIMESTAMP | Tipo de Timestamp | java.sql.Timestamp | DataTypes.TimestampType |
TIMESTAMP_NTZ | Tipo de TimestampNTZ | java.time.LocalDateTime | DataTypes.TimestampNTZType |
DATA | TipoDeData | java.sql.Date | TiposDeDados.TipoDeData |
intervalo de ano-mês | TipoIntervaloAnoMês | java.time.Period | TipoIntervaloAnoMês (3) |
intervalo de dia-tempo | TipoIntervaloDiaHora | java.time.Duration | DayTimeIntervalType (3) |
ARRAY | Tipo de Array | ava.util.List | DataTypes.createArrayType(elementType [, containsNull]). (2) |
MAPA | TipoDeMapa | java.util.Map | DataTypes.createMapType(keyType, valueType [, valueContainsNull]). (2) |
ESTRUTURA | TipoDeEstrutura | 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 | TipoDeVariante | org.apache.spark.unsafe.type.VariantVal | TipoDeVariante |
de OBJETO | Sem suporte | Sem suporte | Sem suporte |
Pitão
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 | Tipo de Byte | int ou longo. (1) | ByteType() |
SMALLINT | Tipo curto | int ou longo. (1) | ShortType() |
INT | IntegerType | int ou longo | IntegerType() |
BIGINT | LongType | longo (1) | LongType() |
FLUTUAR | TipoFlutuante | float (1) | FloatType() |
DUPLICAR | DoubleType | FLOAT | DoubleType() |
DECIMAL(p,s) | TipoDecimal | decimal. Decimal | DecimalType() |
CORDA | TipoString | corda | StringType() |
BINÁRIO | TipoBinário | bytearray | BinaryType() |
BOOLIANO | Tipo Booleano | Bool | BooleanType() |
TIMESTAMP | Tipo de Timestamp | datetime.datetime | TimestampType() |
TIMESTAMP_NTZ | Tipo de TimestampNTZ | datetime.datetime | TimestampNTZType() |
DATA | TipoDeData | datetime.date | DateType() |
intervalo de ano-mês | TipoIntervaloAnoMês | Sem suporte | Sem suporte |
intervalo de dia-tempo | TipoIntervaloDiaHora | datetime.timedelta | DayTimeIntervalType (3) |
ARRAY | Tipo de Array | lista, tupla ou matriz | ArrayType(elementType, [containsNull]). (2) |
MAPA | TipoDeMapa | Dicionário | MapType(keyType, valueType, [valueContainsNull]). (2) |
ESTRUTURA | TipoDeEstrutura | 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 | TipoDeVariante | VariantVal | VariantType() |
de OBJETO | Sem suporte | Sem suporte | Sem suporte |
R
Tipo SQL | Tipo de dados | Tipo de valor | API para acessar ou criar tipo de dados |
---|---|---|---|
TINYINT | Tipo de Byte | Inteiro (1) | byte |
SMALLINT | Tipo curto | Inteiro (1) | curto |
INT | IntegerType | inteiro | inteiro |
BIGINT | LongType | Inteiro (1) | longo |
FLUTUAR | TipoFlutuante | numérico (1) | 'flutuar' |
DUPLICAR | DoubleType | numérico | duplo |
DECIMAL(p,s) | TipoDecimal | Sem suporte | Sem suporte |
CORDA | TipoString | personagem | cadeia de caracteres |
BINÁRIO | TipoBinário | não processado | 'binário' |
BOOLIANO | Tipo Booleano | lógico | 'bool' |
TIMESTAMP | Tipo de Timestamp | POSIXct | 'carimbo de data/hora' |
TIMESTAMP_NTZ | Tipo de TimestampNTZ | datetime.datetime | TimestampNTZType() |
DATA | TipoDeData | Data | 'date' |
intervalo de ano-mês | TipoIntervaloAnoMês | Sem suporte | Sem suporte |
intervalo de dia-tempo | TipoIntervaloDiaHora | Sem suporte | Sem suporte |
ARRAY | Tipo de Array | vetor ou lista | list(type='array', elementType=elementType, containsNull=[containsNull]). (2) |
MAPA | TipoDeMapa | ambiente | list(type='map', keyType=keyType, valueType=valueType, valueContainsNull=[valueContainsNull]). (2) |
ESTRUTURA | TipoDeEstrutura | lista nomeada | lista(tipo='struct', campos=campos). 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 |
de OBJETO | Sem suporte | Sem suporte | Sem suporte |
(1) Os números são convertidos no domínio em runtime. Verifique se os números estão dentro do intervalo.
(2) O valor opcional é o padrão para 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 destartField
eendField
sã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 destartField
eendField
sã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 deStructField
s (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.nullable
indica se os valores desses campos podem ter valoresnull
. Esse é o padrão.