Compartilhar via


Tipos de dados

Aplica-se a:marca de seleção positiva SQL do Databricks marca de seleção positiva 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 binários de ponto flutuante usam expoentes e uma representação binária para cobrir um grande intervalo de números:

Mapeamentos de idioma

Aplica-se a:verificação marcada como sim 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 e endField é o campo mais à direita do tipo. Valores válidos de startField e endField são 0(MONTH) e 1(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 e endField é o campo mais à direita do tipo. Valores válidos de startField e endField são 0(DAY), 1(HOUR), 2(MINUTE), 3(SECOND).

(4)StructType

  • StructType(fields) Representa valores com a estrutura descrita por uma sequência, lista ou raiz de StructFields (campos). Dois campos com o mesmo nome não são permitidos.
  • StructField(name, dataType, nullable) Representa um campo em um StructType. O nome de um campo é indicado por name. O tipo de dados de um campo é indicado por dataType. nullable indica se os valores desses campos podem ter valores null. Esse é o padrão.