Datatyper

gäller för:markerad med ja Databricks SQL markerad med ja Databricks Runtime

Regler för hur konflikter mellan datatyper löses finns i REGLER för SQL-datatyp.

Datatyper som stöds

Azure Databricks stöder följande datatyper:

Datatyp Description
BIGINT Representerar 8 byte signerade heltalsnummer.
BINARY Representerar bytesekvensvärden.
BOOLEAN Representerar booleska värden.
DATE Representerar värden som består av värden för fälten år, månad och dag, utan tidszon.
DECIMAL(p,s) Representerar tal med maximal precision p och fast skalning s.
DOUBLE Representerar flyttal med dubbel precision som är 8 byte.
FLOAT Representerar flyttal med enkel precision på 4 byte.
INT Representerar 4 bytes signerade heltalsnummer.
INTERVALLintervallKvalificerare Representerar tidsintervall antingen på en skala av sekunder eller månader.
VOID Representerar den otypade NULL.
SMALLINT Representerar 2 byte signerade heltalsnummer.
STRING Representerar teckensträngsvärden.
TIMESTAMP Representerar värden som består av värden för fälten år, månad, dag, timme, minut och sekund, med den lokala tidszonen för sessionen.
TIMESTAMP_NTZ Representerar värden som består av värden för fälten år, månad, dag, timme, minut och sekund. Alla åtgärder utförs utan att ta hänsyn till någon tidszon.
TINYINT Representerar 1-byte signerade heltal.
GEOGRAPHY(srid) Representerar geografiska värden vars koordinatreferenssystem är geografiskt (longitud och latitud i grader) och definieras av srid värdet. Om srid är inställt på ANY koordinatreferenssystemet är inte hårdkodat i typen och blir ett körningsvärde.
GEOMETRI(srid) Representerar geometrivärden vars koordinatreferenssystem förstås som Cartsian och definieras av srid värdet. Om srid är inställt på ANY koordinatreferenssystemet är inte hårdkodat i typen och blir ett körningsvärde.
ARRAY-elementTyp <> Representerar värden som består av en sekvens med element med typen elementType.
MAP < keyType,valueType > Representerar värden som består av en uppsättning nyckel/värde-par.
STRUCT < [fieldName : fieldType [NOT NULL][COMMENT str][, ...]] > Representerar värden med den struktur som beskrivs av en sekvens med fält.
VARIANT Representerar halvstrukturerade data.
OBJECT Representerar värden i en VARIANT med strukturen som beskrivs av en uppsättning fält.

Important

Delta Lake stöder VOID inte typen.

Klassificering av datatyp

Datatyper grupperas i följande klasser:

Integral numeriska typer

Integral numeriska typer representerar heltal:

Exakta numeriska typer

Exakta numeriska typer representerar base-10-tal:

Binära flyttalstyper

Binära flyttalstyper använder exponenter och en binär representation för att täcka ett stort antal tal:

Numeriska typer

Numeriska typer representerar alla numeriska datatyper:

Datum-tidstyper

Datum- och tidstyper representerar datum- och tidskomponenter:

Geospatiala typer

Geospatiala typer representerar geometriska eller geografiska objekt:

Enkla typer

Enkla typer är typer som definieras genom att lagra singleton-värden:

Komplexa typer

Komplexa typer består av flera komponenter av komplexa eller enkla typer:

Språkmappningar

Gäller för:markerat med ja Databricks Runtime

Scala

Spark SQL-datatyper definieras i paketet org.apache.spark.sql.types. Du kommer åt dem genom att importera paketet:

import org.apache.spark.sql.types._
SQL-typ Datatyp Värdetyp API för att komma åt eller skapa datatyp
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
årsmånadsintervall YearMonthIntervalType java.time.Period YearMonthIntervalType (3)
dagtidsintervall DayTimeIntervalType java.time.Duration DayTimeIntervalType (3)
GEOGRAPHY(srid) Geografityp org.apache.spark.unsafe.type.GeographyVal Geografityp
GEOMETRI(srid) GeometryType org.apache.spark.unsafe.type.GeometryVal GeometryType
ARRAY ArrayType scala.collection.Seq ArrayTyp(elementTyp [, innehållerNull]). (2)
MAP MapType scala.collection.Map MapType(keyType, valueType [, valueContainsNull]). (2)
STRUCT StructType org.apache.spark.sql.Row StructType(fields). fält är en sekvens av StructField. 4.
StructField Värdetypen för datatypen för det här fältet(Till exempel Int för en StructField med datatypen IntegerType) StructFält(namn, datatyp [, nullbar]). 4
VARIANT VariantType org.apache.spark.unsafe.type.VariantVal VariantType
OBJECT Stöds inte Stöds inte Stöds inte

Java

Spark SQL-datatyper definieras i paketet org.apache.spark.sql.types. Om du vill komma åt eller skapa en datatyp använder du fabriksmetoderna i org.apache.spark.sql.types.DataTypes.

SQL-typ Datatyp Värdetyp API för att komma åt eller skapa datatyp
TINYINT ByteType byte eller Byte DataTypes.ByteType
SMALLINT ShortType Kort eller kort DataTypes.ShortType
INT IntegerType int eller heltal DataTypes.IntegerType
BIGINT LongType lång eller lång DataTypes.LongType
FLOAT FloatType flyttal eller flyttal DataTypes.FloatType
DOUBLE DoubleType dubbel eller dubbel DataTypes.DoubleType
DECIMAL(p,s) DecimalType java.math.BigDecimal DataTypes.createDecimalType() DataTypes.createDecimalType(precision, skala).
STRING StringType String DataTypes.StringType
BINARY BinaryType byte[] DataTypes.BinaryType
BOOLEAN BooleanType boolesk eller 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
årsmånadsintervall YearMonthIntervalType java.time.Period YearMonthIntervalType (3)
dagtidsintervall DayTimeIntervalType java.time.Duration DayTimeIntervalType (3)
GEOGRAPHY(srid) Geografityp org.apache.spark.unsafe.type.GeographyVal GeografiTyp
GEOMETRI(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). fält är en lista eller matris med StructField. 4
StructField Värdetypen för datatypen för det här fältet (till exempel int för en StructField med datatypen IntegerType) DataTypes.createStructField(name, dataType, nullable) 4
VARIANT VariantType org.apache.spark.unsafe.type.VariantVal VariantType
OBJECT Stöds inte Stöds inte Stöds inte

Python

Spark SQL-datatyper definieras i paketet pyspark.sql.types. Du kommer åt dem genom att importera paketet:

from pyspark.sql.types import *
SQL-typ Datatyp Värdetyp API för att komma åt eller skapa datatyp
TINYINT ByteType int eller long. (1) ByteType()
SMALLINT ShortType int eller long. (1) ShortType()
INT IntegerType int eller 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()
årsmånadsintervall YearMonthIntervalType Stöds inte Stöds inte
dagtidsintervall DayTimeIntervalType datetime.timedelta DayTimeIntervalType (3)
GEOGRAPHY(srid) GeographyType GeographyVal GeographyType()
GEOMETRI(srid) GeometryType GeometryVal GeometryType()
ARRAY ArrayType lista, tuppeln eller matrisen ArrayType(elementType, [containsNull]). (2)
MAP MapType dict MapType(keyType, valueType, [valueContainsNull]). (2)
STRUCT StructType lista eller tupl StructType(fields). fältet är en sekvens av StructField. (4)
StructField Värdetypen för datatypen för det här fältet (till exempel Int för en StructField med datatypen IntegerType) StructField(name, dataType, [nullable]). (4)
VARIANT VariantType VariantVal VariantType()
OBJECT Stöds inte Stöds inte Stöds inte

R

SQL-typ Datatyp Värdetyp API för att komma åt eller skapa datatyp
TINYINT ByteType heltal (1) 'byte'
SMALLINT ShortType heltal (1) 'short'
INT IntegerType integer 'integer'
BIGINT LongType heltal (1) 'long'
FLOAT FloatType numeriskt (1) 'float'
DOUBLE DoubleType numeric 'double'
DECIMAL(p,s) DecimalType Stöds inte Stöds inte
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'
årsmånadsintervall YearMonthIntervalType Stöds inte Stöds inte
dagtidsintervall DayTimeIntervalType Stöds inte Stöds inte
GEOGRAPHY(srid) Stöds inte Stöds inte Stöds inte
GEOMETRI(srid) Stöds inte Stöds inte Stöds inte
ARRAY ArrayType vektor eller lista list(type='array', elementType=elementType, containsNull=[containsNull]). (2)
MAP MapType environment list(type='map', keyType=keyType, valueType=valueType, valueContainsNull=[valueContainsNull]). (2)
STRUCT StructType namngiven lista list(type='struct', fields=fields). fält är en sekvens av StructField. (4)
StructField Värdetypen för datatypen för det här fältet (till exempel heltal för ett StructField med datatypen IntegerType) list(name=name, type=dataType, nullable=[nullable]). (4)
VARIANT Stöds inte Stöds inte Stöds inte
OBJECT Stöds inte Stöds inte Stöds inte

(1) Tal konverteras till domänområdet vid körning. Kontrollera att talen ligger inom intervallet.

(2) Det valfria värdet är TRUEsom standard .

(3) Intervalltyper

  • YearMonthIntervalType([startField,] endField): Representerar ett årsmånadsintervall som består av en sammanhängande delmängd av följande fält:

    startField är det vänstra fältet och endField är det högra fältet av typen. Giltiga värden för startField och endField är 0(MONTH) och 1(YEAR).

  • DayTimeIntervalType([startField,] endField): Representerar ett dagtidsintervall som består av en sammanhängande delmängd av följande fält:

    startField är det vänstra fältet och endField är det högra fältet av typen. Giltiga värden för startField och endField är 0(DAY), 1(HOUR), 2(MINUTE), 3(SECOND).

(4)StructType

  • StructType(fields) Representerar värden med den struktur som beskrivs av en sekvens, lista eller matris med StructFields (fält). Två fält med samma namn tillåts inte.
  • StructField(name, dataType, nullable) Representerar ett fält i en StructType. Namnet på ett fält anges av name. Datatypen för ett fält anges av dataType. nullable anger om värdena för dessa fält kan ha null värden. Det här är standardinställningen.