Partilhar via


Tipos de dados

Aplica-se a:assinalado sim Databricks SQL assinalado sim Databricks Runtime

Para obter regras que regem como os conflitos entre tipos de dados são resolvidos, consulte Regras de tipo de dados SQL.

Tipos de dados suportados:

O Azure Databricks dá suporte aos seguintes tipos de dados:

Tipo de Dados Descrição
BIGINT Representa números inteiros assinados de 8 bytes.
BINÁRIO Representa valores de sequência de bytes.
BOOLEANO Representa valores booleanos.
DATA Representa valores que compreendem valores de campos ano, mês e dia, sem fuso horário.
DECIMAL(p,s) Representa números com precisão p máxima e escala sfixa.
DUPLO Representa números de ponto flutuante de precisão dupla de 8 bytes.
FLUTUAR Representa números de ponto flutuante de precisão única de 4 bytes.
INT Representa números inteiros assinados de 4 bytes.
INTERVALO intervaloQualificador Representa intervalos de tempo em uma escala de segundos ou meses.
VAZIO Representa o NULL não tipado.
SMALLINT Representa números inteiros assinados de 2 bytes.
STRING Representa valores de cadeia de caracteres.
Carimbo de data e hora Representa valores que compreendem valores de campos ano, mês, dia, hora, minuto e segundo, com o fuso horário local da sessão.
TIMESTAMP_NTZ Representa valores que compreendem valores de campos ano, mês, dia, hora, minuto e segundo. Todas as operações são realizadas sem ter em conta qualquer fuso horário.
TINYINT Representa números inteiros assinados de 1 byte.
ARRAY < elementType > Representa valores que compreendem uma sequência de elementos com o tipo de elementType.
MAP tipoChave,tipoValor<> Representa valores que compreendem 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.
VARIANTE Representa dados semiestruturados.
OBJETO Representa valores em um VARIANT com a estrutura descrita por um conjunto de campos.

Importante

Delta Lake não suporta o VOID tipo.

Classificação do tipo de dados

Os tipos de dados são agrupados nas seguintes classes:

  • Os tipos binários de ponto flutuante usam expoentes e uma representação binária para cobrir uma grande variedade de números:

Mapeamentos linguísticos

Aplica-se a:assinalado Sim Databricks Runtime

linguagem de programação Scala

Os tipos de dados do Spark SQL são definidos no pacote org.apache.spark.sql.types. Você acede a eles 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 Tipo inteiro int Tipo inteiro
BIGINT Tipo Longo Longo Tipo Longo
FLUTUAR Tipo de flutuação Flutuador Tipo de flutuação
DUPLO Tipo Duplo Duplo Tipo Duplo
DECIMAL(p,s) Tipo decimal java.math.BigDecimal Tipo decimal
STRING TipoString Cordão TipoString
BINÁRIO TipoBinário Matriz[Byte] TipoBinário
BOOLEANO Tipo Booleano Booleano Tipo Booleano
Carimbo de data e hora Tipo de carimbo de data/hora java.sql.Carimbo de data/hora Tipo de carimbo de data/hora
TIMESTAMP_NTZ Carimbo de data/horaNTZTipe java.time.LocalDateTime Carimbo de data/horaNTZTipe
DATA Tipo de Data java.sql.Data Tipo de Data
intervalo ano-mês TipoIntervaloAnoMes java.time.Período TipoIntervaloAnoMês (3)
intervalo diurno TipoIntervaloDiaHora java.time.Duration DayTimeIntervalType (3)
MATRIZ Tipo de matriz scala.collection.Seq ArrayType(elementType [, containsNull]). (2)
MAPA Tipo de mapa scala.collection.Mapa MapType(tipoChave, tipoValor [, valorContémNulo]). (2)
ESTRUTURA Tipo de estrutura org.apache.spark.sql.Linha StructType(campos). "fields é uma sequência de StructField." 4.
Campo Estrutural O tipo de valor do tipo de dados deste campo(Por exemplo, Int para um StructField com o tipo de dados IntegerType) StructField(nome, tipoDeDados [, nulo]). 4
VARIANTE Tipo de variante org.apache.spark.unsafe.type.VariantVal Tipo de variante
OBJETO Não suportado Não suportado Não suportado

Java

Os tipos de dados do Spark SQL 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 em 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 curto ou Curto DataTypes.ShortType
INT Tipo inteiro int ou inteiro DataTypes.IntegerType
BIGINT Tipo Longo longo ou longo DataTypes.LongType
FLUTUAR Tipo de flutuação float ou Float TiposDeDados.FloatType
DUPLO Tipo Duplo duplo ou Double DataTypes.DoubleType (TipoDuplo)
DECIMAL(p,s) Tipo decimal java.math.BigDecimal DataTypes.createDecimalType() DataTypes.createDecimalType(precisão, escala).
STRING TipoString Cordão DataTypes.StringType
BINÁRIO TipoBinário byte[] Tipo de Dados: DataTypes.BinaryType
BOOLEANO Tipo Booleano booleano ou Boolean DataTypes.BooleanType
Carimbo de data e hora Tipo de carimbo de data/hora java.sql.Carimbo de data/hora DataTypes.TimestampType
TIMESTAMP_NTZ Carimbo de data/horaNTZTipe java.time.LocalDateTime DataTypes.TimestampNTZType
DATA Tipo de Data java.sql.Data TiposDeDados.TipoData (DataTypes.DateType)
intervalo ano-mês TipoIntervaloAnoMes java.time.Período TipoIntervaloAnoMês (3)
intervalo diurno TipoIntervaloDiaHora java.time.Duration DayTimeIntervalType (3)
MATRIZ Tipo de matriz ava.util.Lista DataTypes.createArrayType(elementType [, containsNull]). (2)
MAPA Tipo de mapa java.util.Mapa DataTypes.createMapType(keyType, valueType [, valueContainsNull]). (2)
ESTRUTURA Tipo de estrutura org.apache.spark.sql.Linha DataTypes.createStructType(campos). fields é uma Lista ou matriz de StructField. 4
Campo Estrutural O tipo de valor do tipo de dados deste campo (Por exemplo, int para um StructField com o tipo de dados IntegerType) DataTypes.createStructField(nome, tipoDeDados, anulável) 4
VARIANTE Tipo de variante org.apache.spark.unsafe.type.VariantVal Tipo de variante
OBJETO Não suportado Não suportado Não suportado

Píton

Os tipos de dados do Spark SQL são definidos no pacote pyspark.sql.types. Você acede a eles 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 long. (1) ByteType()
SMALLINT Tipo curto int ou long. (1) ShortType()
INT Tipo inteiro int ou long IntegerType()
BIGINT Tipo Longo longo (1) Tipo longo()
FLUTUAR Tipo de flutuação float (1) Tipo de flutuação()
DUPLO Tipo Duplo flutuante Tipo duplo()
DECIMAL(p,s) Tipo decimal decimais. Decimal DecimalType()
STRING TipoString corda StringType()
BINÁRIO TipoBinário ByteArray BinaryType()
BOOLEANO Tipo Booleano booleano BooleanType()
Carimbo de data e hora Tipo de carimbo de data/hora datetime.datetime TimestampType()
TIMESTAMP_NTZ Carimbo de data/horaNTZTipe datetime.datetime Carimbo de data/horaNTZType()
DATA Tipo de Data datetime.date DateType()
intervalo ano-mês TipoIntervaloAnoMes Não suportado Não suportado
intervalo diurno TipoIntervaloDiaHora datetime.timedelta DayTimeIntervalType (3)
MATRIZ Tipo de matriz lista, tupla ou matriz ArrayType(elementType, [containsNull]). (2)
MAPA Tipo de mapa dicionário MapType(keyType, valueType, [valueContainsNull]). (2)
ESTRUTURA Tipo de estrutura lista ou tupla StructType(campos). field é um Seq de StructField. (4)
Campo Estrutural O tipo de valor do tipo de dados deste campo (Por exemplo, Int para um StructField com o tipo de dados IntegerType) StructField(nome, tipo de dados, [nulo]).(4)
VARIANTE Tipo de variante Variante Val VariantType()
OBJETO Não suportado Não suportado Não suportado

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 Tipo inteiro inteiro inteiro
BIGINT Tipo Longo inteiro (1) 'longo'
FLUTUAR Tipo de flutuação numérico (1) 'Flutuar'
DUPLO Tipo Duplo numérico 'Duplo'
DECIMAL(p,s) Tipo decimal Não suportado Não suportado
STRING TipoString caráter ! 'String'
BINÁRIO TipoBinário cru 'binário'
BOOLEANO Tipo Booleano lógica 'Bool'
Carimbo de data e hora Tipo de carimbo de data/hora POSIXct data e hora
TIMESTAMP_NTZ Carimbo de data/horaNTZTipe datetime.datetime Carimbo de data/horaNTZType()
DATA Tipo de Data Data data de calendário
intervalo ano-mês TipoIntervaloAnoMes Não suportado Não suportado
intervalo diurno TipoIntervaloDiaHora Não suportado Não suportado
MATRIZ Tipo de matriz vetor ou lista list(type='array', elementType=elementType, containsNull=[containsNull]). (2)
MAPA Tipo de mapa ambiente list(type='map', keyType=keyType, valueType=valueType, valueContainsNull=[valueContainsNull]). (2)
ESTRUTURA Tipo de estrutura Lista nomeada list(type='struct', fields=fields). "fields é uma sequência de StructField." (4)
Campo Estrutural O tipo de valor do tipo de dados deste campo (por exemplo, inteiro para um StructField com o tipo de dados IntegerType) lista(nome=nome, tipo=tipoDeDados, anulável=[anulável]).(4)
VARIANTE Não suportado Não suportado Não suportado
OBJETO Não suportado Não suportado Não suportado

(1) Os números são convertidos para o domínio em tempo de execução. Certifique-se de que os números estão dentro do intervalo.

(2) O valor opcional assume o padrão TRUE.

(3) Tipos de intervalos

  • YearMonthIntervalType([startField,] endField): Representa um intervalo ano-mês constituído por um subconjunto contíguo dos seguintes campos:

    startField é o campo mais à esquerda e endField é o campo mais à direita do tipo. Os valores válidos de startField e endField são 0(MONTH) e 1(YEAR).

  • DayTimeIntervalType([startField,] endField): Representa um intervalo de tempo diurno constituído por um subconjunto contíguo dos seguintes campos:

    startField é o campo mais à esquerda e endField é o campo mais à direita do tipo. Os 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 matriz de StructFields (campos). Não são permitidos dois campos com o mesmo nome.
  • StructField(name, dataType, nullable) Representa um campo num StructType. O nome de um campo é indicado por name. O tipo de dados de um campo é indicado por dataType. Indica-se com nullable se os valores desses campos podem ter valores de null. Esta é a predefinição.