Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:
Databricks SQL
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 | Description |
|---|---|
| BIGINT | Stellt 8-Byte-Ganzzahlen mit Vorzeichen dar. |
| BINARY | Stellt Bytesequenzwerte dar. |
| BOOLEAN | Stellt boolesche Werte dar. |
| DATE | Stellt Werte dar, die sich aus Feldern für Jahr, Monat und Tag ohne Zeitzone zusammensetzen. |
| DECIMAL(p,s) | Stellt Zahlen mit maximaler Genauigkeit p und fester Skala s dar. |
| DOUBLE | Stellt Gleitkommazahlen mit doppelter Genauigkeit und 8 Bytes dar. |
| FLOAT | 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. |
| VOID | Stellt den nicht typisierten NULL-Wert dar. |
| SMALLINT | Stellt 2-Byte-Ganzzahlen mit Vorzeichen dar. |
| STRING | Stellt Zeichenfolgenwerte dar. |
| TIMESTAMP | 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. |
| GEOGRAFIE(srid) | Stellt Geografiewerte dar, deren Koordinatenreferenzsystem geografisch (Längengrad und Breitengrad in Grad) ist und durch den srid Wert definiert wird. Wenn srid auf ANY festgelegt ist, ist das Koordinatenreferenzsystem im Typ nicht hartcodiert und wird zu einem Laufzeitwert. |
| GEOMETRY(srid) | Stellt Geometriewerte dar, deren Koordinatenverweissystem als Cartsian verstanden wird und durch den srid Wert definiert wird. Wenn srid auf ANY festgelegt ist, ist das Koordinatenreferenzsystem im Typ nicht hartcodiert und wird zu einem Laufzeitwert. |
| ARRAY < ElementTyp > | 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 < [FieldName : fieldType [NOT NULL][COMMENT str][, ...]] > | Stellt Werte mit der Struktur dar, die von einer Sequenz von Feldern beschrieben wird. |
| VARIANT | Stellt semi-strukturierte Daten dar. |
| OBJECT | Repräsentiert Werte in einem VARIANT mit einer Struktur, die durch eine Reihe von Feldern beschrieben wird. |
Important
Der Typ VOID wird von Delta Lake nicht unterstützt.
Datentypklassifizierung
Datentypen sind in die folgenden Klassen eingeteilt:
Integrale numerische Typen
Integrale numerische Typen stellen ganze Zahlen dar:
Exakte numerische Typen
Genaue numerische Typen stellen Base-10-Zahlen dar:
Binäre Gleitkommatypen
Binäre Gleitkommatypen verwenden Exponenten und eine binäre Darstellung, um einen großen Zahlenbereich abzudecken:
Numerische Typen
Numerische Typen stellen alle numerischen Datentypen dar:
Datums-/Uhrzeittypen
Datums- und Uhrzeittypen stellen Datums- und Uhrzeitkomponenten dar:
Geospatialtypen
Geospatialtypen stellen geometrische oder geografische Objekte dar:
Einfache Typen
Einfache Typen sind Typen, die durch das Halten von Singletonwerten definiert werden:
Komplexe Typen
Komplexe Typen bestehen aus mehreren Komponenten komplexer oder einfacher Typen:
Sprachzuordnungen
Gilt für:
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 | 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 |
| Jahresmonatsintervall | YearMonthIntervalType | java.time.Period | JahrMonatIntervallTyp (3) |
| Tageszeitintervall | DayTimeIntervalType | java.time.Duration | DayTimeIntervalType (3) |
| GEOGRAFIE(srid) | GeographieTyp | org.apache.spark.unsafe.type.GeographyVal | Geografietyp |
| 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). 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 [, nullwertfähig]). 4 | |
| VARIANT | VariantType | org.apache.spark.unsafe.type.VariantVal | VariantType |
| 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 | DataTypes.ByteType |
| SMALLINT | ShortType | short oder short | DataTypes.ShortType |
| INT | IntegerType | int oder Integer | DataTypes.IntegerType |
| BIGINT | LongType | long oder Long | DataTypes.LongType |
| FLOAT | FloatType | float oder Float | DataTypes.FloatType |
| DOUBLE | DoubleType | double oder 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 oder 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 |
| Jahresmonatsintervall | YearMonthIntervalType | java.time.Period | JahrMonatIntervallTyp (3) |
| Tageszeitintervall | DayTimeIntervalType | java.time.Duration | DayTimeIntervalType (3) |
| GEOGRAFIE(srid) | GeografieTyp | org.apache.spark.unsafe.type.GeographyVal | GeographyType |
| 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). 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 | |
| VARIANT | VariantType | org.apache.spark.unsafe.type.VariantVal | VariantType |
| 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 | IntegerType | int oder long | IntegerType() |
| BIGINT | LongType | lang (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() |
| Jahresmonatsintervall | YearMonthIntervalType | Nicht unterstützt | Nicht unterstützt |
| Tageszeitintervall | DayTimeIntervalType | datetime.timedelta | DayTimeIntervalType (3) |
| GEOGRAFIE(srid) | GeographyType | GeographyVal | GeographyType() |
| GEOMETRY(srid) | GeometryType | GeometryVal | GeometryType() |
| ARRAY | ArrayType | list, tuple oder array | ArrayType(elementType, [containsNull]). (2) |
| MAP | MapType | dict | MapType(keyType, valueType, [valueContainsNull]). (2) |
| STRUCT | 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) | |
| VARIANT | VariantType | 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 | ganze Zahl (1) | 'byte' |
| SMALLINT | ShortType | ganze Zahl (1) | 'short' |
| INT | IntegerType | integer | 'integer' |
| BIGINT | LongType | ganze Zahl (1) | 'long' |
| FLOAT | FloatType | numerisch (1) | 'float' |
| DOUBLE | DoubleType | numeric | 'double' |
| DECIMAL(p,s) | DecimalType | Nicht unterstützt | Nicht unterstützt |
| 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' |
| Jahresmonatsintervall | YearMonthIntervalType | Nicht unterstützt | Nicht unterstützt |
| Tageszeitintervall | DayTimeIntervalType | Nicht unterstützt | Nicht unterstützt |
| GEOGRAFIE(srid) | Nicht unterstützt | Nicht unterstützt | Nicht unterstützt |
| GEOMETRY(srid) | Nicht unterstützt | Nicht unterstützt | Nicht unterstützt |
| ARRAY | ArrayType | vector oder list | list(type='array', elementType=elementType, containsNull=[containsNull]). (2) |
| MAP | MapType | environment | list(type='map', keyType=keyType, valueType=valueType, valueContainsNull=[valueContainsNull]). (2) |
| STRUCT | StructType | benannte Liste | list(typ='struct', 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) | |
| VARIANT | Nicht unterstützt | Nicht unterstützt | Nicht unterstützt |
| OBJECT | Nicht unterstützt | Nicht unterstützt | Nicht unterstützt |
(1) Zahlen werden zur Laufzeit in die Domäne konvertiert. Die Zahlen müssen innerhalb des Bereichs liegen.
(2) Der optionale Wert hat standardmäßig den Wert TRUE.
(3) Intervalltypen
YearMonthIntervalType([startField,] endField): Stellt ein Jahr-Monats-Intervall dar, das aus einer zusammenhängenden Teilmenge der folgenden Felder besteht:startFieldist das Feld ganz links, undendFieldist das ganz rechte Feld des Typs. Gültige Werte vonstartFieldundendFieldsind0(MONTH)und1(YEAR).DayTimeIntervalType([startField,] endField): Stellt ein Tageszeitintervall dar, das sich aus einer zusammenhängenden Teilmenge der folgenden Felder zusammensetzt:startFieldist das Feld ganz links, undendFieldist das ganz rechte Feld des Typs. Gültige Werte vonstartFieldundendFieldsind0(DAY),1(HOUR),2(MINUTE),3(SECOND).
(4)StructType
-
StructType(fields)Stellt Werte mit der Struktur dar, die durch eine Sequenz, Liste oder ein Array vonStructFields (Felder). Zwei Felder mit dem gleichen Namen sind nicht zulässig. -
StructField(name, dataType, nullable)Repräsentiert ein Feld in einemStructType. Der Name eines Felds wird durchnameangegeben. Der Datentyp eines Felds wird durch „dataType“ angegeben.nullablegibt an, ob die Werte dieser Felder einen bestimmten Wert haben können.nullWerte. Dies ist die Standardeinstellung.