Tipos de dados
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 | 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 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. |
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:
- Os tipos numéricos integrais representam números inteiros:
- 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 representa 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 um único valor values:
- Os tipos complexos são compostos por vários componentes de tipos complexos ou simples:
Mapeamentos linguísticos
Aplica-se a: 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 TRUE
padrã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 eendField
é o campo mais à direita do tipo. Os values 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 de values parastartField
eendField
são0(DAY)
,1(HOUR)
,2(MINUTE)
,3(SECOND)
.
(4)StructType
-
StructType(fields)
Representa values com a estrutura descrita por uma sequência, listou matriz deStructField
s (campos). Não são permitidos dois campos com o mesmo nome. -
StructField(name, dataType, nullable)
Representa um campo em umStructType
arquivo . O nome de um campo é indicado porname
. O tipo de dados de um campo é indicado por dataType.nullable
indica se values desses campos pode ternull
values. Esta é a predefinição.