Delen via


Data types

Applies to:check marked yes Databricks SQL check marked yes Databricks Runtime

Zie SQL-gegevenstyperegels voor regels die bepalen hoe conflicten tussen gegevenstypen worden opgelost.

Ondersteunde gegevenstypen

Azure Databricks ondersteunt de volgende gegevenstypen:

Data Type Description
BIGINT Vertegenwoordigt 8 byte ondertekende gehele getallen.
BINARY Hiermee worden bytereekswaarden vertegenwoordigd.
BOOLEAN Vertegenwoordigt Booleaanse waarden.
DATE Vertegenwoordigt waarden die bestaan uit waarden van velden jaar, maand en dag, zonder een tijdzone.
DECIMAL(p,s) Vertegenwoordigt getallen met maximale precisie p en vaste schaal s.
DOUBLE Vertegenwoordigt 8-byte drijvendekommanummers met dubbele precisie.
FLOAT Vertegenwoordigt 4-byte drijvende-komma getallen met enkelvoudige precisie.
INT Vertegenwoordigt vier byte ondertekende gehele getallen.
INTERVAL intervalQualifier Vertegenwoordigt intervallen van tijd op een schaal van seconden of maanden.
VOID Vertegenwoordigt de niet-getypte NULL.
SMALLINT Vertegenwoordigt 2-byte getekende gehele getallen.
STRING Vertegenwoordigt tekenreekswaarden.
TIMESTAMP Vertegenwoordigt waarden die bestaan uit waarden van velden jaar, maand, dag, uur, minuut en seconde, met de lokale tijdzone van de sessie.
TIMESTAMP_NTZ Vertegenwoordigt waarden die bestaan uit waarden van velden jaar, maand, dag, uur, minuut en seconde. Alle bewerkingen worden uitgevoerd zonder rekening te houden met een tijdzone.
TINYINT Geeft 1-byte gesigneerde gehele getallen weer.
GEOGRAPHY(srid) Vertegenwoordigt geografische waarden waarvan het coördinaatreferentiesysteem geografisch is (lengtegraad en breedtegraad in graden) en wordt gedefinieerd door de srid waarde. Als srid dit is ingesteld op ANY het coördinaatreferentiesysteem, wordt het type niet vastgelegd en wordt het een runtimewaarde.
GEOMETRY(srid) Vertegenwoordigt geometriewaarden waarvan het coördinaatreferentiesysteem wordt begrepen als Cartsian en wordt gedefinieerd door de srid waarde. Als srid dit is ingesteld op ANY het coördinaatreferentiesysteem, wordt het type niet vastgelegd en wordt het een runtimewaarde.
ARRAY elementType <> Vertegenwoordigt waarden die bestaan uit een reeks elementen met het type elementType.
MAP < keyType,valueType > Vertegenwoordigt waarden die bestaan uit een set sleutel-waardeparen.
STRUCT < [fieldName : fieldType [NOT NULL][COMMENT str][, ...]] > Vertegenwoordigt waarden met de structuur die wordt beschreven door een reeks velden.
VARIANT Vertegenwoordigt semi-gestructureerde gegevens.
OBJECT Vertegenwoordigt waarden in een VARIANT met de structuur die wordt beschreven door een set velden.

Important

Delta Lake biedt geen ondersteuning voor het VOID type.

Classificatie van gegevenstypen

Gegevenstypen worden gegroepeerd in de volgende klassen:

Integrale numerieke typen

Integrale numerieke typen vertegenwoordigen gehele getallen:

Exacte numerieke typen

Exacte numerieke typen vertegenwoordigen grondtal-10 getallen:

Binaire typen drijvende komma

Binaire drijvendekommatypen maken gebruik van exponenten en een binaire weergave om een groot aantal getallen te dekken:

Numeric types

Numerieke typen vertegenwoordigen alle numerieke gegevenstypen:

Date-time types

Datum- en tijdtypen vertegenwoordigen datum- en tijdonderdelen:

Geospatial types

Georuimtelijke typen vertegenwoordigen geometrische of geografische objecten:

Simple types

Eenvoudige typen zijn typen die worden gedefinieerd door singleton-waarden vast te houden:

Complex types

Complex types are composed of multiple components of complex or simple types:

Language mappings

Applies to:check marked yes Databricks Runtime

Scala

Spark SQL-gegevenstypen worden gedefinieerd in het pakket org.apache.spark.sql.types. U opent deze door het pakket te importeren:

import org.apache.spark.sql.types._
SQL type Data type Value type API voor toegang tot of het maken van gegevenstype
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
year-month interval YearMonthIntervalType java.time.Period YearMonthIntervalType (3)
day-time interval DayTimeIntervalType java.time.Duration DayTimeIntervalType (3)
GEOGRAPHY(srid) GeographyType org.apache.spark.unsafe.type.GeographyVal GeographyType
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). Velden zijn een sequentie van StructField. 4.
StructField Het waardetype van het gegevenstype van dit veld (bijvoorbeeld Int voor een StructField met het gegevenstype IntegerType) StructField(naam, dataType [, nullable]). 4
VARIANT VariantType org.apache.spark.unsafe.type.VariantVal VariantType
OBJECT Not Supported Not supported Not supported

Java

Spark SQL-gegevenstypen worden gedefinieerd in het pakket org.apache.spark.sql.types. Als u toegang wilt krijgen tot of een gegevenstype wilt maken, gebruikt u fabrieksmethoden die zijn opgegeven in org.apache.spark.sql.types.DataTypes.

SQL type Data Type Value type API voor toegang tot of het maken van gegevenstype
TINYINT ByteType byte of Byte DataTypes.ByteType
SMALLINT ShortType kort of kort DataTypes.ShortType
INT IntegerType int of geheel getal DataTypes.IntegerType
BIGINT LongType lang of lang DataTypes.LongType
FLOAT FloatType Float Of Float DataTypes.FloatType
DOUBLE DoubleType dubbel of Dubbel 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 Booleaanse of Booleaanse waarde DataTypes.BooleanType
TIMESTAMP TimestampType java.sql.Timestamp DataTypes.TimestampType
TIMESTAMP_NTZ TimestampNTZType java.time.LocalDateTime DataTypes.TimestampNTZType
DATE DateType java.sql.Date DataTypes.DateType
year-month interval YearMonthIntervalType java.time.Period YearMonthIntervalType (3)
day-time interval DayTimeIntervalType java.time.Duration DayTimeIntervalType (3)
GEOGRAPHY(srid) GeographyType 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). velden is een lijst of matrix van StructField. 4
StructField Het waardetype van het gegevenstype van dit veld (bijvoorbeeld int voor een StructField met het gegevenstype IntegerType) DataTypes.createStructField(name, dataType, nullable) 4
VARIANT VariantType org.apache.spark.unsafe.type.VariantVal VariantType
OBJECT Not Supported Not supported Not supported

Python

Spark SQL-gegevenstypen worden gedefinieerd in het pakket pyspark.sql.types. U opent deze door het pakket te importeren:

from pyspark.sql.types import *
SQL type Data type Value type API voor toegang tot of het maken van gegevenstype
TINYINT ByteType int of lang. (1) ByteType()
SMALLINT ShortType int of lang. (1) ShortType()
INT IntegerType int of lang 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()
year-month interval YearMonthIntervalType Not supported Not supported
day-time interval DayTimeIntervalType datetime.timedelta DayTimeIntervalType (3)
GEOGRAPHY(srid) GeographyType GeographyVal GeographyType()
GEOMETRY(srid) GeometryType GeometryVal GeometryType()
ARRAY ArrayType lijst, tuple of matrix ArrayType(elementType, [containsNull]).(2)
MAP MapType dict MapType(keyType, valueType, [valueContainsNull]).(2)
STRUCT StructType lijst of tuple StructType(fields). Veld is een sequentie van StructField. (4)
StructField Het waardetype van het gegevenstype van dit veld (bijvoorbeeld Int voor een StructField met het gegevenstype IntegerType) StructField(name, dataType, [nullable]).(4)
VARIANT VariantType VariantVal VariantType()
OBJECT Not Supported Not supported Not supported

R

SQL type Data type Value type API voor toegang tot of het maken van gegevenstype
TINYINT ByteType integer (1) 'byte'
SMALLINT ShortType integer (1) 'short'
INT IntegerType integer 'integer'
BIGINT LongType integer (1) 'long'
FLOAT FloatType numeric (1) 'float'
DOUBLE DoubleType numeric 'double'
DECIMAL(p,s) DecimalType Not supported Not supported
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'
year-month interval YearMonthIntervalType Not supported Not supported
day-time interval DayTimeIntervalType Not supported Not supported
GEOGRAPHY(srid) Not supported Not supported Not supported
GEOMETRY(srid) Not supported Not supported Not supported
ARRAY ArrayType vector of lijst list(type='array', elementType=elementType, containsNull=[containsNull]).(2)
MAP MapType environment list(type='map', keyType=keyType, valueType=valueType, valueContainsNull=[valueContainsNull]).(2)
STRUCT StructType named list list(type='struct', fields=fields). Velden zijn een sequentie van StructField. (4)
StructField Het waardetype van het gegevenstype van dit veld (bijvoorbeeld een geheel getal voor een StructField met het gegevenstype IntegerType) list(name=name, type=dataType, nullable=[nullable]).(4)
VARIANT Not Supported Not supported Not supported
OBJECT Not Supported Not supported Not supported

(1) Numbers are converted to the domain at runtime. Zorg ervoor dat getallen binnen het bereik vallen.

(2) The optional value defaults to TRUE.

(3) Interval types

  • YearMonthIntervalType([startField,] endField): Vertegenwoordigt een jaarmaandinterval dat bestaat uit een aaneengesloten subset van de volgende velden:

    startField is het meest linkse veld en endField is het meest rechtse veld van het type. Geldige waarden van startField en endField zijn 0(MONTH) en 1(YEAR).

  • DayTimeIntervalType([startField,] endField): Vertegenwoordigt een dag-tijdsinterval dat bestaat uit een aaneengesloten subset van de volgende velden:

    startField is het meest linkse veld en endField is het meest rechtse veld van het type. Geldige waarden van startField en endField zijn 0(DAY), 1(HOUR), 2(MINUTE), 3(SECOND).

(4)StructType

  • StructType(fields) Vertegenwoordigt waarden met de structuur die wordt beschreven door een reeks, lijst of matrix van StructFields (velden). Twee velden met dezelfde naam zijn niet toegestaan.
  • StructField(name, dataType, nullable) Vertegenwoordigt een veld in een StructType. De naam van een veld wordt aangegeven door name. Het gegevenstype van een veld wordt aangegeven door dataType. nullable geeft aan of waarden van deze velden null waarden kunnen hebben. Dit is de standaardinstelling.