Freigeben über


Datentypen

Gilt für:durch Häkchen mit „Ja“ markiert Databricks SQL durch Häkchen mit „Ja“ markiert Databricks Runtime

Regeln zur Lösung von Konflikten zwischen Datentypen finden Sie unter SQL-Datentypregeln.

Unterstützte Datentypen

Azure Databricks unterstützt folgende Datentypen:

Datentyp BESCHREIBUNG
BIGINT Stellt 8-Byte-Ganzzahlen mit Vorzeichen dar.
BINÄR Stellt Bytesequenzwerte dar.
BOOLESCHEN Stellt boolesche Werte dar.
DATUM Stellt Werte dar, die sich aus Feldern für Jahr, Monat und Tag ohne Zeitzone zusammensetzen.
DEZIMAL(p,s) Stellt Zahlen mit maximaler Genauigkeit p und fester Skala s dar.
DOPPELT Stellt Gleitkommazahlen mit doppelter Genauigkeit und 8 Bytes dar.
SCHWEBEN Stellt Gleitkommazahlen mit einfacher Genauigkeit und 4 Bytes dar.
INT Stellt 4-Byte-Ganzzahlen mit Vorzeichen dar.
INTERVAL intervalQualifier Stellt Zeitintervalle entweder auf einer Skala von Sekunden oder Monaten dar.
LEERE Stellt den nicht typisierten NULL-Wert dar.
SMALLINT Stellt 2-Byte-Ganzzahlen mit Vorzeichen dar.
SCHNUR Stellt Zeichenfolgenwerte dar.
ZEITSTEMPEL Stellt Werte dar, die sich aus Feldern für Jahr, Monat, Tag, Stunde, Minute und Sekunde mit der lokalen Zeitzone der Sitzung zusammensetzen.
TIMESTAMP_NTZ Stellt Werte dar, die sich aus Werten der Felder Jahr, Monat, Tag, Stunde, Minute und Sekunde zusammensetzen. Alle Vorgänge werden ohne Berücksichtigung einer Zeitzone ausgeführt.
TINYINT Stellt 1-Byte-Ganzzahlen mit Vorzeichen dar.
ARRAY< elementType > Stellt Werte dar, die eine Sequenz von Elementen mit dem Typ elementType umfassen.
MAP < keyType,valueType > Stellt Werte dar, die aus einer Menge von Schlüssel-Wert-Paaren bestehen.
STRUCT < [Feldname : fieldType [NOT NULL][COMMENT str][, …]] > Stellt Werte mit der Struktur dar, die von einer Sequenz von Feldern beschrieben wird.
VARIANTE Stellt halbstrukturierte Daten dar.
OBJECT- Stellt Werte in einer VARIANT-Instanz mit der Struktur dar, die von einer Sequenz von Feldern beschrieben wird.

Wichtig

Der Typ VOID wird von Delta Lake nicht unterstützt.

Datentypklassifizierung

Datentypen sind in die folgenden Klassen eingeteilt:

  • Binäre Gleitkommatypen verwenden Exponenten und eine binäre Darstellung, um einen großen Bereich von Zahlen abzudecken:

Sprachzuordnungen

Gilt für:Häkchen gesetzt ja Databricks Runtime

Scala

Spark SQL-Datentypen sind im Paket org.apache.spark.sql.types definiert. Sie greifen darauf zu, indem Sie das Paket importieren:

import org.apache.spark.sql.types._
SQL-Typ Datentyp Werttyp API zum Zugreifen auf einen Datentyp oder zum Erstellen eines Datentyps
TINYINT ByteType Byte ByteType
SMALLINT ShortType Schnellstart ShortType
INT Integer-Typ Integer Integer-Typ
BIGINT LongType Lang LongType
SCHWEBEN FloatType Schweben FloatType
DOPPELT DoubleType Doppelt DoubleType
DEZIMAL(p,s) Dezimaltyp java.math.BigDecimal Dezimaltyp
SCHNUR Zeichenkettentyp Schnur Zeichenkettentyp
BINÄR Binärtyp Array[Byte] Binärtyp
BOOLESCHEN Boolescher Typ Boolescher Typ (Boolean) Boolescher Typ
ZEITSTEMPEL Zeitstempeltyp java.sql.Timestamp Zeitstempeltyp
TIMESTAMP_NTZ TimestampNTZType java.time.LocalDateTime TimestampNTZType
DATUM Datumstyp java.sql.Date Datumstyp
Jahr/Monat-Intervall JahrMonatIntervallTyp java.time.Period YearMonthIntervalType (3)
Tageszeit-Intervall TageszeitIntervallTyp java.time.Duration TagesZeitIntervallTyp (3)
Array Array-Typ scala.collection.Seq ArrayType(elementType [, containsNull]). (2)
LANDKARTE MapType scala.collection.Map MapType(keyType, valueType [, valueContainsNull]). (2)
STRUKTUR StructType org.apache.spark.sql.Row StructType(fields). Felder sind eine Sequenz von StructField. 4.
StructField Der Werttyp des Datentyps dieses Felds (z. B. „Int“ für ein „StructField“ mit dem Datentyp „IntegerType“) StructField(name, dataType [, nullable]) - Strukturfeld(name, Datentyp [, optional]). 4
VARIANTE VariantenTyp org.apache.spark.unsafe.type.VariantVal VariantenTyp
OBJECT- Nicht unterstützt Nicht unterstützt Nicht unterstützt

Java

Spark SQL-Datentypen sind im Paket org.apache.spark.sql.types definiert. Verwenden Sie die in org.apache.spark.sql.types.DataTypes verfügbaren Factorymethoden, um auf einen Datentyp zu zugreifen oder einen Datentyp zu erstellen.

SQL-Typ Datentyp Werttyp API zum Zugreifen auf einen Datentyp oder zum Erstellen eines Datentyps
TINYINT ByteType byte oder Byte DatenTypen.ByteTyp
SMALLINT ShortType short oder short DataTypes.ShortType
INT Integer-Typ int oder Integer DataTypes.IntegerType
BIGINT LongType long oder Long Datentypen.Langtyp
SCHWEBEN FloatType float oder Float Datentypen.Gleitkommatyp
DOPPELT DoubleType double oder Double DataTypes.DoubleType
DEZIMAL(p,s) Dezimaltyp java.math.BigDecimal DataTypes.createDecimalType() DataTypes.createDecimalType(precision, scale).
SCHNUR Zeichenkettentyp Schnur DatenTypen.StringTyp
BINÄR Binärtyp Byte[] DataTypes.BinaryType
BOOLESCHEN Boolescher Typ boolean oder Boolean DataTypes.BooleanType
ZEITSTEMPEL Zeitstempeltyp java.sql.Timestamp DataTypes.TimestampType
TIMESTAMP_NTZ TimestampNTZType java.time.LocalDateTime DataTypes.TimestampNTZType
DATUM Datumstyp java.sql.Date DatenTypen.DatumTyp
Jahr/Monat-Intervall JahrMonatIntervallTyp java.time.Period YearMonthIntervalType (3)
Tageszeit-Intervall TageszeitIntervallTyp java.time.Duration TagesZeitIntervallTyp (3)
Array Array-Typ ava.util.List DataTypes.createArrayType(elementType [, containsNull]). (2)
LANDKARTE MapType java.util.Map DataTypes.createMapType(keyType, valueType [, valueContainsNull]). (2)
STRUKTUR StructType org.apache.spark.sql.Row DataTypes.createStructType(fields). Felder sind eine Liste oder ein Array von StructField. 4
StructField Der Werttyp des Datentyps dieses Felds (z. B. „int“ für ein „StructField“ mit dem Datentyp „IntegerType“) DataTypes.createStructField(name, dataType, nullable) 4
VARIANTE VariantenTyp org.apache.spark.unsafe.type.VariantVal VariantenTyp
OBJECT- Nicht unterstützt Nicht unterstützt Nicht unterstützt

Python

Spark SQL-Datentypen sind im Paket pyspark.sql.types definiert. Sie greifen darauf zu, indem Sie das Paket importieren:

from pyspark.sql.types import *
SQL-Typ Datentyp Werttyp API zum Zugreifen auf einen Datentyp oder zum Erstellen eines Datentyps
TINYINT ByteType int oder long. (1) ByteType()
SMALLINT ShortType int oder long. (1) ShortType()
INT Integer-Typ int oder long IntegerType()
BIGINT LongType lang (1) LongType()
SCHWEBEN FloatType Gleitkomma(1) FloatType()
DOPPELT DoubleType Schweben DoubleType()
DEZIMAL(p,s) Dezimaltyp dezimal. Dezimal DecimalType()
SCHNUR Zeichenkettentyp Zeichenfolge StringType()
BINÄR Binärtyp Bytearray BinaryType()
BOOLESCHEN Boolescher Typ Boolesch BooleanType()
ZEITSTEMPEL Zeitstempeltyp datetime.datetime TimestampType()
TIMESTAMP_NTZ TimestampNTZType datetime.datetime TimestampNTZType()
DATUM Datumstyp datetime.date DateType()
Jahr/Monat-Intervall JahrMonatIntervallTyp Nicht unterstützt Nicht unterstützt
Tageszeit-Intervall TageszeitIntervallTyp datetime.timedelta TagesZeitIntervallTyp (3)
Array Array-Typ list, tuple oder array ArrayType(elementType, [containsNull]). (2)
LANDKARTE MapType Wörterbuch MapType(keyType, valueType, [valueContainsNull]). (2)
STRUKTUR StructType list oder tuple StructType(fields). Felder sind eine Sequenz von StructField. (4)
StructField Der Werttyp des Datentyps dieses Felds (z. B. „Int“ für ein „StructField“ mit dem Datentyp „IntegerType“) StructField(name, dataType, [nullable]). (4)
VARIANTE VariantenTyp VariantVal VariantType()
OBJECT- Nicht unterstützt Nicht unterstützt Nicht unterstützt

R

SQL-Typ Datentyp Werttyp API zum Zugreifen auf einen Datentyp oder zum Erstellen eines Datentyps
TINYINT ByteType Integer (1) "Byte"
SMALLINT ShortType Integer (1) kurz
INT Integer-Typ Integer "ganze Zahl"
BIGINT LongType Integer (1) "long"
SCHWEBEN FloatType numerisch(1) "float"
DOPPELT DoubleType Numerisch doppelt
DEZIMAL(p,s) Dezimaltyp Nicht unterstützt Nicht unterstützt
SCHNUR Zeichenkettentyp Zeichen 'string'
BINÄR Binärtyp roh "binär"
BOOLESCHEN Boolescher Typ Logisch 'bool'
ZEITSTEMPEL Zeitstempeltyp POSIXct "Zeitstempel"
TIMESTAMP_NTZ TimestampNTZType datetime.datetime TimestampNTZType()
DATUM Datumstyp Datum "Datum"
Jahr/Monat-Intervall JahrMonatIntervallTyp Nicht unterstützt Nicht unterstützt
Tageszeit-Intervall TageszeitIntervallTyp Nicht unterstützt Nicht unterstützt
Array Array-Typ vector oder list list(type='array', elementType=elementType, containsNull=[containsNull]). (2)
LANDKARTE MapType Environment list(type='map', keyType=keyType, valueType=valueType, valueContainsNull=[valueContainsNull]). (2)
STRUKTUR StructType benannte Liste Liste(Typ='Struktur', Felder=Felder). Felder sind eine Sequenz von StructField. (4)
StructField Der Werttyp des Datentyps dieses Felds (z. B. „integer“ für ein „StructField“ mit dem Datentyp „IntegerType“) list(name=name, type=dataType, nullable=[nullable]). (4)
VARIANTE Nicht unterstützt Nicht unterstützt Nicht unterstützt
OBJECT- Nicht unterstützt Nicht unterstützt Nicht unterstützt

(1) Zahlen werden in Runtime in die Domäne konvertiert. Die Zahlen müssen innerhalb des Bereichs liegen.

(2) Der optionale Wert ist standardmäßig TRUE.

(3) Intervalltypen

  • YearMonthIntervalType([startField,] endField): Stellt ein Jahr-Monat-Intervall dar, das aus einer zusammenhängenden Teilmenge der folgenden Felder besteht:

    startField ist das Feld ganz links und endField das Feld ganz rechts des Typs. Gültige Werte von startField und endField sind 0(MONTH) und 1(YEAR).

  • DayTimeIntervalType([startField,] endField): Stellt ein Tag-Uhrzeit-Intervall dar, das aus einer zusammenhängenden Teilmenge der folgenden Felder besteht:

    startField ist das Feld ganz links und endField das Feld ganz rechts des Typs. Gültige Werte von startField und endField sind 0(DAY), 1(HOUR), 2(MINUTE), 3(SECOND).

(4)StructType

  • StructType(fields) stellt Werte mit der Struktur dar, die von einer Sequenz, einer Liste oder einem Array von StructFielden (Feldern) beschrieben werden. Zwei Felder mit dem gleichen Namen sind nicht zulässig.
  • StructField(name, dataType, nullable) stellt ein Feld in einem StructType dar. Der Name eines Felds wird durch name angegeben. Der Datentyp eines Felds wird durch „dataType“ angegeben. nullable gibt an, ob Werte dieser Felder null-Werte aufweisen können. Dies ist die Standardoption.