Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:
Databricks SQL
Databricks Runtime
Per le regole che regolano il modo in cui vengono risolti i conflitti tra i tipi di dati, vedere Regole dei tipi di dati SQL.
Tipi di dati supportati
Azure Databricks supporta i tipi di dati seguenti:
| Tipo di dati | Description |
|---|---|
| BIGINT | Rappresenta numeri interi con segno a 8 byte. |
| BINARY | Rappresenta i valori della sequenza di byte. |
| BOOLEAN | Rappresenta valori booleani. |
| DATE | Rappresenta i valori che comprendono i valori di campi anno, mese e giorno, senza un fuso orario. |
| DECIMAL(p,s) | Rappresenta numeri con precisione p massima e scala sfissa. |
| DOUBLE | Rappresenta numeri a virgola mobile a precisione doppia a 8 byte. |
| FLOAT | Rappresenta numeri a virgola mobile a precisione singola a 4 byte. |
| INT | Rappresenta numeri interi con segno a 4 byte. |
| INTERVAL intervalQualifier | Rappresenta gli intervalli di tempo su una scala di secondi o mesi. |
| VOID | Rappresenta il valore NULL non tipizzato. |
| SMALLINT | Rappresenta numeri interi con segno a 2 byte. |
| STRING | Rappresenta valori di stringa di caratteri. |
| TIMESTAMP | Rappresenta i valori che comprendono i valori di campi anno, mese, giorno, ora, minuto e secondo, con il fuso orario locale della sessione. |
| TIMESTAMP_NTZ | Rappresenta i valori che comprendono i valori di campi anno, mese, giorno, ora, minuto e secondo. Tutte le operazioni vengono eseguite senza prendere in considerazione alcun fuso orario. |
| TINYINT | Rappresenta numeri interi con segno a 1 byte. |
| GEOGRAPHY(srid) | Rappresenta i valori geografici il cui sistema di riferimento delle coordinate è geografico (longitudine e latitudine in gradi) ed è definito dal valore srid. Se srid è impostato, il sistema di riferimento delle coordinate non è codificato staticamente nel tipo e diventa un valore di runtime. |
| GEOMETRY(srid) | Rappresenta i valori geometrici il cui sistema di riferimento delle coordinate è inteso come Cartesiano ed è definito dal valore srid. Se srid è impostato, il sistema di riferimento delle coordinate non è codificato staticamente nel tipo e diventa un valore di runtime. |
| ARRAY < tipoElemento > | Rappresenta i valori che comprendono una sequenza di elementi con il tipo di elementType. |
| MAP < keyType,valueType > | Rappresenta i valori che comprendono un set di coppie chiave-valore. |
| STRUCT < [nomeCampo : tipoCampo [NON NULLO][COMMENTO str][, ...]] > | Rappresenta i valori con la struttura descritta da una sequenza di campi. |
| VARIANT | Rappresenta dati semistrutturati. |
| OBJECT | Rappresenta i valori in un VARIANT con la struttura descritta da un set di campi. |
Important
Delta Lake non supporta il VOID tipo.
Classificazione dei tipi di dati
I tipi di dati vengono raggruppati nelle classi seguenti:
Tipi numerici integrali
I tipi numerici integrali rappresentano numeri interi:
Tipi numerici esatti
I tipi numerici esatti rappresentano numeri base 10:
Tipi a virgola mobile binaria
I tipi a virgola mobile binaria usano esponenti e una rappresentazione binaria per coprire un'ampia gamma di numeri:
Tipi numerici
I tipi numerici rappresentano tutti i tipi di dati numerici:
Tipi di data e ora
I tipi di data e ora rappresentano componenti di data e ora:
Tipi geospaziali
I tipi geospaziali rappresentano oggetti geometrici o geografici:
Tipi semplici
I tipi semplici sono tipi definiti con valori singleton:
Tipi complessi
I tipi complessi sono costituiti da più componenti di tipi complessi o semplici:
Mappe linguistiche
Si applica a:
Databricks Runtime
Scala
I tipi di dati SPARK SQL sono definiti nel pacchetto org.apache.spark.sql.types. È possibile accedervi importando il pacchetto:
import org.apache.spark.sql.types._
| Tipo SQL | Tipo di dati | Tipo di valore | API per accedere o creare un tipo di dati |
|---|---|---|---|
| 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 | Boolean | BooleanType |
| TIMESTAMP | TimestampType | java.sql.Timestamp | TimestampType |
| TIMESTAMP_NTZ | TimestampNTZType | java.time.LocalDateTime | TimestampNTZType |
| DATE | DateType | java.sql.Date | DateType |
| intervallo anno-mese | YearMonthIntervalType | java.time.Period | YearMonthIntervalType (3) |
| intervallo di tempo del giorno | DayTimeIntervalType | java.time.Duration | DayTimeIntervalType (3) |
| GEOGRAPHY(srid) | TipoGeografia | org.apache.spark.unsafe.type.GeographyVal | GeographyType |
| GEOMETRY(srid) | GeometryType | org.apache.spark.unsafe.type.GeometryVal | GeometryType |
| ARRAY | ArrayType | scala.collection.Seq | ArrayType(elementType [, containsNull]). (2) |
| MAP | MapType | scala.collection.Map | MapType(keyType, valueType [, valueContainsNull]). (2) |
| STRUCT | StructType | org.apache.spark.sql.Row | StructType(fields). fields è una sequenza di StructField. 4. |
| StructField | Tipo di valore del tipo di dati di questo campo(ad esempio, Int per un campo Struct con il tipo di dati IntegerType) | StructField(nome, tipoDiDato [, nullo]). 4 | |
| VARIANT | VariantType | org.apache.spark.unsafe.type.VariantVal | VariantType |
| OBJECT | Non supportato | Non supportato | Non supportato |
Java
I tipi di dati SPARK SQL sono definiti nel pacchetto org.apache.spark.sql.types. Per accedere o creare un tipo di dati, usare i metodi factory forniti in org.apache.spark.sql.types.DataTypes.
| Tipo SQL | Tipo di dati | Tipo di valore | API per accedere o creare un tipo di dati |
|---|---|---|---|
| TINYINT | ByteType | byte o Byte | DataTypes.ByteType |
| SMALLINT | ShortType | corto o breve | DataTypes.ShortType |
| INT | IntegerType | int o Integer | DataTypes.IntegerType |
| BIGINT | LongType | long o Long | DataTypes.LongType |
| FLOAT | FloatType | float o tipo Float | DataTypes.FloatType |
| DOUBLE | DoubleType | doppio o Double | DataTypes.DoubleType |
| DECIMAL(p,s) | DecimalType | java.math.BigDecimal | DataTypes.createDecimalType() DataTypes.createDecimalType(precision, scale). |
| STRING | StringType | String | DataTypes.StringType |
| BINARY | BinaryType | byte[] | DataTypes.BinaryType |
| BOOLEAN | BooleanType | Boolean o booleano | DataTypes.BooleanType |
| TIMESTAMP | TimestampType | java.sql.Timestamp | DataTypes.TimestampType |
| TIMESTAMP_NTZ | TimestampNTZType | java.time.LocalDateTime | DataTypes.TimestampNTZType |
| DATE | DateType | java.sql.Date | DataTypes.DateType |
| intervallo anno-mese | YearMonthIntervalType | java.time.Period | YearMonthIntervalType (3) |
| intervallo di tempo del giorno | DayTimeIntervalType | java.time.Duration | DayTimeIntervalType (3) |
| GEOGRAPHY(srid) | GeographyType | org.apache.spark.unsafe.type.GeographyVal | TipoGeografia |
| GEOMETRY(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 è un elenco o una matrice di StructField. 4 |
| StructField | Tipo di valore del tipo di dati di questo campo (ad esempio, int per un campo Struct con il tipo di dati IntegerType) | DataTypes.createStructField(name, dataType, nullable) 4 | |
| VARIANT | VariantType | org.apache.spark.unsafe.type.VariantVal | VariantType |
| OBJECT | Non supportato | Non supportato | Non supportato |
Python
I tipi di dati SPARK SQL sono definiti nel pacchetto pyspark.sql.types. È possibile accedervi importando il pacchetto:
from pyspark.sql.types import *
| Tipo SQL | Tipo di dati | Tipo di valore | API per accedere o creare un tipo di dati |
|---|---|---|---|
| TINYINT | ByteType | int o long. (1) | ByteType() |
| SMALLINT | ShortType | int o long. (1) | ShortType() |
| INT | IntegerType | int o long | IntegerType() |
| BIGINT | LongType | long (1) | LongType() |
| FLOAT | FloatType | float (1) | FloatType() |
| DOUBLE | DoubleType | float | DoubleType() |
| DECIMAL(p,s) | DecimalType | decimal.Decimal | DecimalType() |
| STRING | StringType | string | 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() |
| intervallo anno-mese | YearMonthIntervalType | Non supportato | Non supportato |
| intervallo di tempo del giorno | DayTimeIntervalType | datetime.timedelta | TipoIntervalloDiurno (3) |
| GEOGRAPHY(srid) | TipoGeografia | GeographyVal | GeographyType() |
| GEOMETRY(srid) | GeometryType | GeometryVal | GeometryType() |
| ARRAY | ArrayType | lista, tupla o array | ArrayType(elementType, [containsNull]). (2) |
| MAP | MapType | dict | MapType(keyType, valueType, [valueContainsNull]). (2) |
| STRUCT | StructType | elenco o tupla | StructType(fields). field è una sequenza di StructField. (4) |
| StructField | Tipo di valore del tipo di dati di questo campo (ad esempio, Int per un campo Struct con il tipo di dati IntegerType) | StructField(name, dataType, [nullable]). (4) | |
| VARIANT | VariantType | VariantVal | VariantType() |
| OBJECT | Non supportato | Non supportato | Non supportato |
R
| Tipo SQL | Tipo di dati | Tipo di valore | API per accedere o creare un tipo di dati |
|---|---|---|---|
| TINYINT | ByteType | intero (1) | 'byte' |
| SMALLINT | ShortType | intero (1) | 'short' |
| INT | IntegerType | integer | 'integer' |
| BIGINT | LongType | intero (1) | 'long' |
| FLOAT | FloatType | numeric (1) | 'float' |
| DOUBLE | DoubleType | numeric | 'double' |
| DECIMAL(p,s) | DecimalType | Non supportato | Non supportato |
| STRING | StringType | character | 'string' |
| BINARY | BinaryType | raw | 'binary' |
| BOOLEAN | BooleanType | logical | 'bool' |
| TIMESTAMP | TimestampType | POSIXct | 'timestamp' |
| TIMESTAMP_NTZ | TimestampNTZType | datetime.datetime | TimestampNTZType() |
| DATE | DateType | Date | 'date' |
| intervallo anno-mese | YearMonthIntervalType | Non supportato | Non supportato |
| intervallo di tempo del giorno | DayTimeIntervalType | Non supportato | Non supportato |
| GEOGRAPHY(srid) | Non supportato | Non supportato | Non supportato |
| GEOMETRY(srid) | Non supportato | Non supportato | Non supportato |
| ARRAY | ArrayType | vettore o elenco | list(type='array', elementType=elementType, containsNull=[containsNull]). (2) |
| MAP | MapType | environment | list(type='map', keyType=keyType, valueType=valueType, valueContainsNull=[valueContainsNull]). (2) |
| STRUCT | StructType | lista nominata | list(type='struct', fields=fields). fields è una sequenza di StructField. (4) |
| StructField | Tipo di valore del tipo di dati di questo campo (ad esempio integer per un campo StructField con tipo di dati IntegerType) | list(name=name, type=dataType, nullable=[nullable]). (4) | |
| VARIANT | Non supportato | Non supportato | Non supportato |
| OBJECT | Non supportato | Non supportato | Non supportato |
(1) I numeri vengono convertiti nel dominio in fase di esecuzione. Accertarsi che i numeri rientrino nell'intervallo specificato.
(2) Il valore facoltativo è impostato su TRUE.
(3) Tipi di intervallo
YearMonthIntervalType([startField,] endField): rappresenta un intervallo di mese di anno costituito da un sottoinsieme contiguo dei campi seguenti:startFieldè il campo più a sinistra edendFieldè il campo più a destra del tipo. I valori validi distartFieldeendFieldsono0(MONTH)e1(YEAR).DayTimeIntervalType([startField,] endField): rappresenta un intervallo di tempo di giorno costituito da un subset contiguo dei campi seguenti:startFieldè il campo più a sinistra edendFieldè il campo più a destra del tipo. I valori validi distartFieldeendFieldsono0(DAY),1(HOUR),2(MINUTE),3(SECOND).
(4)StructType
-
StructType(fields)Rappresenta i valori con la struttura descritta da una sequenza, un elenco o una matrice diStructField(campi). Non sono consentiti due campi con lo stesso nome. -
StructField(name, dataType, nullable)Rappresenta un campo in un oggettoStructType. Il nome di un campo è indicato daname. Il tipo di dati di un campo è indicato da dataType.nullableindica se i valori di questi campi possono avere valorinull. Si tratta dell'impostazione predefinita.