Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: Databricks SQL
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 s fixa. |
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 numéricos exatos representam números de base 10:
- Os tipos binários de ponto flutuante usam expoentes e uma representação binária para cobrir uma grande variedade de números:
- Tipos numéricos representam todos os tipos de dados numéricos.
- Os tipos de data e hora representam os componentes de data e hora:
- Tipos de simples são tipos definidos por conter valores únicos:
- Os tipos complexos são compostos por vários componentes de tipos complexos ou simples:
Mapeamentos linguísticos
Aplica-se a: 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 eendField
é o campo mais à direita do tipo. Os valores válidos destartField
eendField
são0(MONTH)
e1(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 eendField
é o campo mais à direita do tipo. Os 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 matriz deStructField
s (campos). Não são permitidos dois campos com o mesmo nome. -
StructField(name, dataType, nullable)
Representa um campo numStructType
. O nome de um campo é indicado porname
. O tipo de dados de um campo é indicado por dataType. Indica-se comnullable
se os valores desses campos podem ter valores denull
. Esta é a predefinição.