Condividi tramite


Tipo di dati

Si applica a:segno di spunta sì Databricks SQL segno di spunta sì 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 Descrizione
BIGINT Rappresenta numeri interi con segno a 8 byte.
BINARIO Rappresenta i valori della sequenza di byte.
BOOLEANO Rappresenta valori booleani.
DATA 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.
DOPPIO Rappresenta numeri a virgola mobile a precisione doppia a 8 byte.
GALLEGGIARE 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.
NULLO Rappresenta il valore NULL non tipizzato.
SMALLINT Rappresenta numeri interi con segno a 2 byte.
STRINGA 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.
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.
VARIANTE Rappresenta dati semistrutturati.
OGGETTO Rappresenta i valori in un VARIANT con la struttura descritta da un set di campi.

Importante

Delta Lake non supporta il VOID tipo.

Classificazione dei tipi di dati

I tipi di dati vengono raggruppati nelle classi seguenti:

  • I tipi a virgola mobile binaria usano esponenti e una rappresentazione binaria per coprire un'ampia gamma di numeri:

Associazioni linguistiche

Si applica a:segno di spunta sì Databricks Runtime

Linguaggio di programmazione 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 Tipo di byte Byte Tipo di byte
SMALLINT ShortType Breve ShortType
INT TipoInteger int TipoInteger
BIGINT LongType Lungo LongType
GALLEGGIARE TipoFloat Galleggiare TipoFloat
DOPPIO DoubleType Doppio DoubleType
DECIMAL(p,s) TipoDecimale java.math.BigDecimal TipoDecimale
STRINGA TipoStringa Stringa TipoStringa
BINARIO TipoBinario Matrice[Byte] TipoBinario
BOOLEANO Tipo Booleano Booleano Tipo Booleano
TIMESTAMP Tipo di Timestamp java.sql.Timestamp Tipo di Timestamp
TIMESTAMP_NTZ TimestampNTZType java.time.LocalDateTime TimestampNTZType
DATA Tipo di Data java.sql.Date Tipo di Data
intervallo anno-mese TipoIntervalloAnnoMese java.time.Period YearMonthIntervalType (3)
intervallo di tempo del giorno DayTimeIntervalType java.time.Duration TipoIntervalloGiornaliero (3)
ARRAY Tipo di Array scala.collection.Seq ArrayType(elementType [, containsNull]). (2)
MAPPA Tipo di Mappa scala.collection.Map MapType(keyType, valueType [, valueContainsNull]). (2)
STRUTTURA StructType (tipo di struttura) org.apache.spark.sql.Row StructType(campi). 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
VARIANTE TipoVariante org.apache.spark.unsafe.type.VariantVal TipoVariante
OGGETTO Non supportato Non supportato Non supportato

Giava

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 Tipo di byte byte o Byte DataTypes.ByteType
SMALLINT ShortType corto o breve DataTypes.ShortType
INT TipoInteger int o Integer Tipo di dati: Integer (Intero)
BIGINT LongType long o Long DataTypes.LongType
GALLEGGIARE TipoFloat float o tipo Float DataTypes.FloatType
DOPPIO DoubleType doppio o Double DataTypes.DoubleType
DECIMAL(p,s) TipoDecimale java.math.BigDecimal DataTypes.createDecimalType() DataTypes.createDecimalType(precision, scale).
STRINGA TipoStringa Stringa DataTypes.StringType
BINARIO TipoBinario byte[] TipoBinario.DataTypes
BOOLEANO Tipo Booleano Boolean o booleano DataTypes.BooleanType
TIMESTAMP Tipo di Timestamp java.sql.Timestamp DataTypes.TimestampType
TIMESTAMP_NTZ TimestampNTZType java.time.LocalDateTime DataTypes.TimestampNTZType
DATA Tipo di Data java.sql.Date DataTypes.DateType
intervallo anno-mese TipoIntervalloAnnoMese java.time.Period YearMonthIntervalType (3)
intervallo di tempo del giorno DayTimeIntervalType java.time.Duration TipoIntervalloGiornaliero (3)
ARRAY Tipo di Array ava.util.List DataTypes.createArrayType(elementType [, containsNull]). (2)
MAPPA Tipo di Mappa java.util.Map DataTypes.createMapType(keyType, valueType [, valueContainsNull]). (2)
STRUTTURA StructType (tipo di struttura) 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
VARIANTE TipoVariante org.apache.spark.unsafe.type.VariantVal TipoVariante
OGGETTO Non supportato Non supportato Non supportato

Pitone

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 Tipo di byte int o long. (1) ByteType()
SMALLINT ShortType int o long. (1) ShortType()
INT TipoInteger int o long IntegerType()
BIGINT LongType long (1) LongType()
GALLEGGIARE TipoFloat float (1) FloatType()
DOPPIO DoubleType galleggiare DoubleType()
DECIMAL(p,s) TipoDecimale decimale. Decimale DecimalType()
STRINGA TipoStringa corda StringType()
BINARIO TipoBinario bytearray BinaryType()
BOOLEANO Tipo Booleano Bool BooleanType()
TIMESTAMP Tipo di Timestamp datetime.datetime TimestampType()
TIMESTAMP_NTZ TimestampNTZType datetime.datetime TimestampNTZType()
DATA Tipo di Data datetime.date (modulo data e ora di Python) DateType()
intervallo anno-mese TipoIntervalloAnnoMese Non supportato Non supportato
intervallo di tempo del giorno DayTimeIntervalType datetime.timedelta TipoIntervalloGiornaliero (3)
ARRAY Tipo di Array lista, tupla o array ArrayType(elementType, [containsNull]). (2)
MAPPA Tipo di Mappa dizionario MapType(keyType, valueType, [valueContainsNull]). (2)
STRUTTURA StructType (tipo di struttura) elenco o tupla StructType(campi). 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)
VARIANTE TipoVariante VariantVal VariantType()
OGGETTO 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 Tipo di byte intero (1) byte
SMALLINT ShortType intero (1) corto
INT TipoInteger numero intero intero
BIGINT LongType intero (1) lungo
GALLEGGIARE TipoFloat numeric (1) "galleggia"
DOPPIO DoubleType numerico doppio
DECIMAL(p,s) TipoDecimale Non supportato Non supportato
STRINGA TipoStringa carattere / personaggio stringa
BINARIO TipoBinario Crudo binario
BOOLEANO Tipo Booleano logico 'bool'
TIMESTAMP Tipo di Timestamp POSIXct marca temporale
TIMESTAMP_NTZ TimestampNTZType datetime.datetime TimestampNTZType()
DATA Tipo di Data Appuntamento 'date'
intervallo anno-mese TipoIntervalloAnnoMese Non supportato Non supportato
intervallo di tempo del giorno DayTimeIntervalType Non supportato Non supportato
ARRAY Tipo di Array vettore o elenco list(type='array', elementType=elementType, containsNull=[containsNull]). (2)
MAPPA Tipo di Mappa ambiente list(type='map', keyType=keyType, valueType=valueType, valueContainsNull=[valueContainsNull]). (2)
STRUTTURA StructType (tipo di struttura) elenco denominato list(type='struct', fields=campi). 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(nome=nome, tipo=datoTipo, annullabile=[annullabile]). (4)
VARIANTE Non supportato Non supportato Non supportato
OGGETTO 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 ed endField è il campo più a destra del tipo. I valori validi di startField e endField sono 0(MONTH) e 1(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 ed endField è il campo più a destra del tipo. I valori validi di startField e endField sono 0(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 di StructField(campi). Non sono consentiti due campi con lo stesso nome.
  • StructField(name, dataType, nullable) Rappresenta un campo in un oggetto StructType. Il nome di un campo è indicato da name. Il tipo di dati di un campo è indicato da dataType. nullable indica se i valori di questi campi possono avere valori null. Si tratta dell'impostazione predefinita.