Partilhar via


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 a sequência de bytes values.
BOOLEANO Representa o Booleano values.
DATE Representa values que consiste em values de campos ano, mês e dia, sem indicação de 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 a cadeia de caracteres values.
TIMESTAMP Representa values compreendendo values de campos ano, mês, dia, hora, minuto e segundo, com a sessão local timezone.
TIMESTAMP_NTZ Representa values constituído por values campos de 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 values compreendendo uma sequência de elementos do tipo elementType.
< MAP keyType,valueType> Representa values compreendendo uma set de pares chave-valor.
STRUCT < [fieldName : fieldType [NOT NULL][COMMENT str][, ...]] > Representa values com a estrutura descrita por uma sequência de campos.
VARIANTE Representa dados semiestruturados.
OBJETO Representa values num VARIANT com a estrutura descrita por uma set 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:

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
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 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.List 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 List 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
VARIANTE Tipo de variante org.apache.spark.unsafe.type.VariantVal Tipo de variante
OBJETO Não suportado Não suportado Não suportado

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 list, tupla ou matriz ArrayType(elementType, [containsNull]).(2)
MAPA Tipo de mapa ditado MapType(keyType, valueType, [valueContainsNull]).(2)
ESTRUTURA Tipo de estrutura list 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)
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 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 list 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 nomeado list 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)
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 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. Os values 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 values para startField e endField são 0(DAY), 1(HOUR), 2(MINUTE), 3(SECOND).

(4)StructType

  • StructType(fields) Representa values com a estrutura descrita por uma sequência, listou 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 values desses campos pode ter nullvalues. Esta é a predefinição.

Artigos relacionados