Tipos de dados

Aplica-se a:Marque Sim Databricks SQL Marque 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 Description
BIGINT Representa números inteiros assinados de 8 bytes.
BINÁRIO Representa valores de sequência de bytes.
BOOLEANO Representa valores booleanos.
DATE 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.
INTERVALOintervaloQualificador 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.
TIMESTAMP 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 keyType,valueType> 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.

Importante

Delta Lake não suporta VOID e INTERVAL tipos.

Classificação do tipo de dados

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

Mapeamentos linguísticos

Aplica-se a:Marque Sim Databricks Runtime

Scala

Os tipos de dados do Spark SQL são definidos no pacote org.apache.spark.sql.types. Você 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 Tipo inteiro Int Tipo inteiro
BIGINT Tipo Longo Longo Tipo Longo
FLUTUAR Tipo de flutuação Float Tipo de flutuação
DUPLO Tipo Duplo Duplo Tipo Duplo
DECIMAL(p,s) Tipo decimal java.math.BigDecimal Tipo decimal
STRING StringType String StringType
BINÁRIO BinaryType Matriz[Byte] BinaryType
BOOLEANO BooleanType Boolean BooleanType
TIMESTAMP 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
DATE Tipo de Data java.sql.Data Tipo de Data
intervalo ano-mês YearMonthIntervalType java.time.Período YearMonthIntervalType (3)
intervalo diurno DayTimeIntervalType java.time.Duration DayTimeIntervalType (3)
MATRIZ Tipo de matriz scala.collection.Seq ArrayType(elementType [, containsNull]). (2)
MAPA Tipo de mapa scala.collection.Mapa MapType(keyType, valueType [, valueContainsNull]). (2)
ESTRUTURA Tipo de estrutura org.apache.spark.sql.Linha StructType(campos). fields é 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, dataType [, anulável]). 4

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 DataTypes.FloatType
DUPLO Tipo Duplo duplo ou duplo DataTypes.DoubleType
DECIMAL(p,s) Tipo decimal java.math.BigDecimal DataTypes.createDecimalType() DataTypes.createDecimalType(precisão, escala).
STRING StringType String DataTypes.StringType
BINÁRIO BinaryType byte[] DataTypes.BinaryType
BOOLEANO BooleanType booleano ou booleano DataTypes.BooleanType
TIMESTAMP 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
DATE Tipo de Data java.sql.Data DataTypes.DateType
intervalo ano-mês YearMonthIntervalType java.time.Período YearMonthIntervalType (3)
intervalo diurno DayTimeIntervalType 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, dataType, anulável) 4

Python

Os tipos de dados do Spark SQL são definidos no pacote pyspark.sql.types. Você 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 Tipo inteiro int ou longo IntegerType()
BIGINT Tipo Longo longo (1) Tipo longo()
FLUTUAR Tipo de flutuação flutuador (1) Tipo de flutuação()
DUPLO Tipo Duplo flutuante Tipo duplo()
DECIMAL(p,s) Tipo decimal decimais. Decimal DecimalType()
STRING StringType string StringType()
BINÁRIO BinaryType ByteArray BinaryType()
BOOLEANO BooleanType booleano BooleanType()
TIMESTAMP Tipo de carimbo de data/hora datetime.datetime TimestampType()
TIMESTAMP_NTZ Carimbo de data/horaNTZTipe datetime.datetime Carimbo de data/horaNTZType()
DATE Tipo de Data datetime.date DateType()
intervalo ano-mês YearMonthIntervalType Não suportado Não suportado
intervalo diurno DayTimeIntervalType datetime.timedelta DayTimeIntervalType (3)
MATRIZ Tipo de matriz lista, tupla ou matriz ArrayType(elementType, [containsNull]).(2)
MAPA Tipo de mapa ditado 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, dataType, [nullable]).(4)

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 integer '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 StringType caráter ! 'String'
BINÁRIO BinaryType raw 'binário'
BOOLEANO BooleanType lógica 'Bool'
TIMESTAMP Tipo de carimbo de data/hora POSIXct 'carimbo de data/hora'
TIMESTAMP_NTZ Carimbo de data/horaNTZTipe datetime.datetime Carimbo de data/horaNTZType()
DATE Tipo de Data Date 'data'
intervalo ano-mês YearMonthIntervalType Não suportado Não suportado
intervalo diurno DayTimeIntervalType 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 é um Seq 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) list(name=name, type=dataType, nullable=[nullable]).(4)

(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 como TRUEpadrão .

(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. 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 em um StructTypearquivo . 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 null valores. Esta é a predefinição.