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 | Description |
|---|---|
| BIGINT | Representa números inteiros assinados de 8 bytes. |
| BINARY | Representa valores de sequência de bytes. |
| BOOLEAN | 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. |
| DOUBLE | Representa números de ponto flutuante de precisão dupla de 8 bytes. |
| FLOAT | 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. |
| VOID | 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. |
| GEOGRAFIA(srid) | Representa valores geográficos cujo sistema de referência de coordenadas é geográfico (longitude e latitude em graus) e é definido pelo srid valor. Se srid estiver definido como ANY, o sistema de referência de coordenadas não é codificado no tipo e torna-se um valor em tempo de execução. |
| GEOMETRIA (srid) | Representa valores geométricos cujo sistema de referência de coordenadas é entendido como Cartesiano e é definido pelo valor srid. Se srid estiver definido como ANY, o sistema de referência de coordenadas não é codificado no tipo e torna-se um valor em tempo de execução. |
| 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. |
| VARIANT | Representa dados semiestruturados. |
| OBJECT | Representa valores em um VARIANT com a estrutura descrita por um conjunto de campos. |
Important
Delta Lake não suporta o VOID tipo.
Classificação do tipo de dados
Os tipos de dados são agrupados nas seguintes classes:
Tipos numéricos integrais
Os tipos numéricos integrais representam números inteiros:
Tipos numéricos exatos
Os tipos numéricos exatos representam números de base 10:
Tipos binários de ponto flutuante
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
Os tipos numéricos representam todos os tipos de dados numéricos:
Tipos de data-hora
Os tipos de data e hora representam os componentes de data e hora:
Tipos geoespaciais
Os tipos geoespaciais representam objetos geométricos ou geográficos:
Tipos simples
Tipos simples são tipos definidos por manter valores singleton:
Tipos complexos
Os tipos complexos são compostos por múltiplos 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ê 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 | ByteType | Byte | ByteType |
| SMALLINT | ShortType | Short | ShortType |
| INT | IntegerType | Int | IntegerType |
| BIGINT | LongType | Long | LongType |
| FLOAT | FloatType | Float | FloatType |
| DOUBLE | DoubleType | Double | DoubleType |
| DECIMAL(p,s) | DecimalType | java.math.BigDecimal | DecimalType |
| STRING | StringType | String | StringType |
| BINARY | BinaryType | Array[Byte] | BinaryType |
| BOOLEAN | BooleanType | booleano | BooleanType |
| TIMESTAMP | TimestampType | java.sql.Timestamp | TimestampType |
| TIMESTAMP_NTZ | TimestampNTZType | java.time.LocalDateTime | TimestampNTZType |
| DATE | DateType | java.sql.Date | DateType |
| intervalo ano-mês | YearMonthIntervalType | java.time.Period | Tipo de Intervalo AnoMês (3) |
| intervalo diurno | DayTimeIntervalType | java.time.Duration | DayTimeIntervalType (3) |
| GEOGRAFIA(srid) | TipoGeografia | org.apache.spark.unsafe.type.GeographyVal | Tipo de Geografia |
| GEOMETRIA (srid) | GeometryType | org.apache.spark.unsafe.type.GeometryVal | GeometryType |
| ARRAY | ArrayType | scala.collection.Seq | ArrayType(elementType [, containsNull]). (2) |
| MAP | MapType | scala.collection.Map | MapType(tipoChave, tipoValor [, valorContémNulo]). (2) |
| STRUCT | StructType | org.apache.spark.sql.Row | StructType(fields). "fields é uma sequência de StructField." 4. |
| StructField | 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 | |
| VARIANT | VariantType | org.apache.spark.unsafe.type.VariantVal | VariantType |
| OBJECT | 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 | ByteType | byte ou Byte | DataTypes.ByteType |
| SMALLINT | ShortType | curto ou Curto | DataTypes.ShortType |
| INT | IntegerType | int ou inteiro | DataTypes.IntegerType |
| BIGINT | LongType | longo ou longo | DataTypes.LongType |
| FLOAT | FloatType | float ou Float | DataTypes.FloatType |
| DOUBLE | DoubleType | duplo ou Double | DataTypes.DoubleType |
| DECIMAL(p,s) | DecimalType | java.math.BigDecimal | DataTypes.createDecimalType() DataTypes.createDecimalType(precisão, escala). |
| STRING | StringType | String | DataTypes.StringType |
| BINARY | BinaryType | byte[] | DataTypes.BinaryType |
| BOOLEAN | BooleanType | booleano ou Boolean | DataTypes.BooleanType |
| TIMESTAMP | TimestampType | java.sql.Timestamp | DataTypes.TimestampType |
| TIMESTAMP_NTZ | TimestampNTZType | java.time.LocalDateTime | DataTypes.TimestampNTZType |
| DATE | DateType | java.sql.Date | DataTypes.DateType |
| intervalo ano-mês | YearMonthIntervalType | java.time.Period | TipoIntervaloAnoMês (3) |
| intervalo diurno | DayTimeIntervalType | java.time.Duration | DayTimeIntervalType (3) |
| GEOGRAFIA(srid) | TipoGeografia | org.apache.spark.unsafe.type.GeographyVal | Tipo de Geografia |
| GEOMETRIA (srid) | GeometryType | org.apache.spark.unsafe.type.GeometryVal | GeometryType |
| ARRAY | ArrayType | ava.util.List | DataTypes.createArrayType(elementType [, containsNull]). (2) |
| MAP | MapType | java.util.Map | DataTypes.createMapType(keyType, valueType [, valueContainsNull]). (2) |
| STRUCT | StructType | org.apache.spark.sql.Row | DataTypes.createStructType(fields). fields é uma Lista ou matriz de StructField. 4 |
| StructField | 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 | |
| VARIANT | VariantType | org.apache.spark.unsafe.type.VariantVal | VariantType |
| OBJECT | 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ê 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 | ByteType | int ou long. (1) | ByteType() |
| SMALLINT | ShortType | int ou long. (1) | ShortType() |
| INT | IntegerType | int ou long | IntegerType() |
| BIGINT | LongType | longo (1) | LongType() |
| FLOAT | FloatType | float (1) | FloatType() |
| DOUBLE | DoubleType | float | DoubleType() |
| DECIMAL(p,s) | DecimalType | decimal.Decimal | DecimalType() |
| STRING | StringType | cadeia (de caracteres) | StringType() |
| BINARY | BinaryType | bytearray | BinaryType() |
| BOOLEAN | BooleanType | bool | BooleanType() |
| TIMESTAMP | TimestampType | datetime.datetime | TimestampType() |
| TIMESTAMP_NTZ | TimestampNTZType | datetime.datetime | TimestampNTZType() |
| DATE | DateType | datetime.date | DateType() |
| intervalo ano-mês | YearMonthIntervalType | Não suportado | Não suportado |
| intervalo diurno | DayTimeIntervalType | datetime.timedelta | DayTimeIntervalType (3) |
| GEOGRAFIA(srid) | TipoDeGeografia | GeografiaVal | GeographyType() |
| GEOMETRIA (srid) | GeometryType | GeometriaVal | GeometryType() |
| ARRAY | ArrayType | lista, tupla ou matriz | ArrayType(elementType, [containsNull]). (2) |
| MAP | MapType | dict | MapType(keyType, valueType, [valueContainsNull]).(2) |
| STRUCT | StructType | lista ou tupla | StructType(fields). field é um Seq de StructField. (4) |
| StructField | 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) | |
| VARIANT | VariantType | VariantVal | VariantType() |
| OBJECT | 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 | ByteType | inteiro (1) | 'byte' |
| SMALLINT | ShortType | inteiro (1) | 'short' |
| INT | IntegerType | número inteiro | 'integer' |
| BIGINT | LongType | inteiro (1) | 'long' |
| FLOAT | FloatType | numérico (1) | 'float' |
| DOUBLE | DoubleType | numeric | 'double' |
| DECIMAL(p,s) | DecimalType | Não suportado | Não suportado |
| STRING | StringType | carácter | 'string' |
| BINARY | BinaryType | raw | 'binary' |
| BOOLEAN | BooleanType | logical | 'bool' |
| TIMESTAMP | TimestampType | POSIXct | 'timestamp' |
| TIMESTAMP_NTZ | TimestampNTZType | datetime.datetime | TimestampNTZType() |
| DATE | DateType | Date | 'date' |
| intervalo ano-mês | YearMonthIntervalType | Não suportado | Não suportado |
| intervalo diurno | DayTimeIntervalType | Não suportado | Não suportado |
| GEOGRAFIA(srid) | Não suportado | Não suportado | Não suportado |
| GEOMETRIA (srid) | Não suportado | Não suportado | Não suportado |
| ARRAY | ArrayType | vetor ou lista | list(type='array', elementType=elementType, containsNull=[containsNull]). (2) |
| MAP | MapType | ambiente | list(type='map', keyType=keyType, valueType=valueType, valueContainsNull=[valueContainsNull]). (2) |
| STRUCT | StructType | Lista de nomeados | lista(tipo='struct', campos=campos). "fields é uma sequência de StructField." (4) |
| StructField | 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) | |
| VARIANT | Não suportado | Não suportado | Não suportado |
| OBJECT | 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 por padrão é TRUE.
(3) Tipos de intervalo
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 destartFieldeendFieldsã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 destartFieldeendFieldsã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 deStructFields (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 comnullablese os valores desses campos podem ter valores denull. Esta é a predefinição.