Dela via


Datatyper

Gäller för: markerad ja Databricks SQL markerad 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 beskrivning
BIGINT Representerar 8 byte signerade heltalsnummer.
BINÄR Representerar bytesekvensvärden.
BOOLESK 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.
DUBBEL Representerar flyttal med 8 byte med dubbel precision.
FLYTA Representerar flyttal med 4 byte med enkel precision.
INT Representerar 4 bytes signerade heltalsnummer.
INTERVALLintervallKvalificerare Representerar tidsintervall antingen på en skala av sekunder eller månader.
TOMRUM Representerar den otypade NULL-filen.
SMALLINT Representerar 2 byte signerade heltalsnummer.
STRÄNG 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 heltalsnummer.
ARRAY <elementType> 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.

Viktigt!

Delta Lake stöder VOID inte och INTERVAL typer.

Klassificering av datatyp

Datatyper grupperas i följande klasser:

Språkmappningar

Gäller för: markerad 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 Kort ShortType
INT IntegerType Int IntegerType
BIGINT LongType Long LongType
FLYTA FloatType Flyttal FloatType
DUBBEL DoubleType Dubbel DoubleType
DECIMAL(p,s) Decimaltyp java.math.BigDecimal Decimaltyp
STRÄNG StringType String StringType
BINÄR BinaryType Matris[Byte] BinaryType
BOOLESK BooleanType Booleskt BooleanType
TIMESTAMP Tidsstämpeltyp java.sql.Timestamp Tidsstämpeltyp
TIMESTAMP_NTZ TidsstämpelNTZType java.time.LocalDateTime TidsstämpelNTZType
DATE DateType java.sql.Date DateType
årsmånadsintervall YearMonthIntervalType java.time.Period YearMonthIntervalType (3)
dagtidsintervall DayTimeIntervalType java.time.Duration DayTimeIntervalType (3)
SAMLING ArrayType scala.collection.Seq ArrayType(elementType [, containsNull]). (2)
KARTA MapType scala.collection.Map MapType(keyType, valueType [, valueContainsNull]). (2)
STRUCT StructType org.apache.spark.sql.Row StructType(fält). fält är en Seq 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

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
FLYTA FloatType flyttal eller flyttal DataTypes.FloatType
DUBBEL DoubleType dubbel eller dubbel DataTypes.DoubleType
DECIMAL(p,s) Decimaltyp java.math.BigDecimal DataTypes.createDecimalType() DataTypes.createDecimalType(precision, skala).
STRÄNG StringType String DataTypes.StringType
BINÄR BinaryType byte[] DataTypes.BinaryType
BOOLESK BooleanType boolesk eller boolesk DataTypes.BooleanType
TIMESTAMP Tidsstämpeltyp java.sql.Timestamp DataTypes.TimestampType
TIMESTAMP_NTZ TidsstämpelNTZType 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)
SAMLING ArrayType ava.util.List DataTypes.createArrayType(elementType [, containsNull]).(2)
KARTA 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

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()
FLYTA FloatType float (1) FloatType()
DUBBEL DoubleType flyttal DoubleType()
DECIMAL(p,s) Decimaltyp decimal. Decimal DecimalType()
STRÄNG StringType sträng StringType()
BINÄR BinaryType bytearray BinaryType()
BOOLESK BooleanType bool BooleanType()
TIMESTAMP Tidsstämpeltyp datetime.datetime TimestampType()
TIMESTAMP_NTZ TidsstämpelNTZType datetime.datetime TidsstämpelNTZType()
DATE DateType datetime.date DateType()
årsmånadsintervall YearMonthIntervalType Stöds inte Stöds inte
dagtidsintervall DayTimeIntervalType datetime.timedelta DayTimeIntervalType (3)
SAMLING ArrayType lista, tuppeln eller matrisen ArrayType(elementType, [containsNull]).(2)
KARTA MapType Dict MapType(keyType, valueType, [valueContainsNull]).(2)
STRUCT StructType lista eller tuppeln StructType(fält). fältet är en Seq 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)

R

SQL-typ Datatyp Värdetyp API för att komma åt eller skapa datatyp
TINYINT ByteType heltal (1) "byte"
SMALLINT ShortType heltal (1) "kort"
INT IntegerType integer "heltal"
BIGINT LongType heltal (1) "long"
FLYTA FloatType numeriskt (1) "float"
DUBBEL DoubleType numeric "dubbel"
DECIMAL(p,s) Decimaltyp Stöds inte Stöds inte
STRÄNG StringType tecken "sträng"
BINÄR BinaryType "binärt"
BOOLESK BooleanType logisk "bool"
TIMESTAMP Tidsstämpeltyp POSIXct "tidsstämpel"
TIMESTAMP_NTZ TidsstämpelNTZType datetime.datetime TidsstämpelNTZType()
DATE DateType Datum "datum"
årsmånadsintervall YearMonthIntervalType Stöds inte Stöds inte
dagtidsintervall DayTimeIntervalType Stöds inte Stöds inte
SAMLING ArrayType vektor eller lista list(type='array', elementType=elementType, containsNull=[containsNull]).(2)
KARTA MapType -miljö list(type='map', keyType=keyType, valueType=valueType, valueContainsNull=[valueContainsNull]).(2)
STRUCT StructType namngiven lista list(type='struct', fields=fields). fält är en Seq 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)

(1) Tal konverteras till domänen 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.