Delen via


Gegevenstypen

Van toepassing op:gemarkeerd als ja Databricks SQL gemarkeerd als ja Databricks Runtime

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

Ondersteunde gegevenstypen

Azure Databricks ondersteunt de volgende gegevenstypen:

Gegevenssoort 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.
GEOGRAFIE(srid) Vertegenwoordigt geografische waarden waarvan het coördinaatreferentiesysteem geografisch is (lengtegraad en breedtegraad in graden) en wordt gedefinieerd door de srid waarde. Als srid is ingesteld op ANY, is het coördinaatreferentiesysteem niet hardcoded in het type en wordt het een runtime-waarde.
GEOMETRIE(srid) Vertegenwoordigt geometriewaarden waarvan het coördinaatreferentiesysteem wordt begrepen als Cartsian en wordt gedefinieerd door de srid waarde. Als srid is ingesteld op ANY, is het coördinaatreferentiesysteem niet hardcoded in het type en wordt het een runtime-waarde.
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:

Numerieke typen

Numerieke typen vertegenwoordigen alle numerieke gegevenstypen:

Datum-/tijdtypen

Datum- en tijdtypen vertegenwoordigen datum- en tijdonderdelen:

Georuimtelijke typen

Georuimtelijke typen vertegenwoordigen geometrische of geografische objecten:

Eenvoudige typen

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

Complexe typen

Complexe typen bestaan uit meerdere onderdelen van complexe of eenvoudige typen:

Taaltoewijzingen

Van toepassing op:controleren gemarkeerd als Ja 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 Gegevenstype Waardetype 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
jaar-maandinterval YearMonthIntervalType java.time.Period YearMonthIntervalType (3)
dag-tijdsinterval DayTimeIntervalType java.time.Duration DayTimeIntervalType (3)
GEOGRAFIE(srid) Geografietype org.apache.spark.unsafe.type.GeographyVal GeografieType
GEOMETRIE(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 Niet ondersteund Niet ondersteund Niet ondersteund

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 Gegevenssoort Waardetype 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
jaar-maandinterval YearMonthIntervalType java.time.Period YearMonthIntervalType (3)
dag-tijdsinterval DayTimeIntervalType java.time.Duration DayTimeIntervalType (3)
GEOGRAFIE(srid) Geografietype org.apache.spark.unsafe.type.GeographyVal GeografieType
GEOMETRIE(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 Niet ondersteund Niet ondersteund Niet ondersteund

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 Gegevenstype Waardetype 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 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()
jaar-maandinterval YearMonthIntervalType Niet ondersteund Niet ondersteund
dag-tijdsinterval DayTimeIntervalType datetime.timedelta DayTimeIntervalType (3)
GEOGRAFIE(srid) Geografietype GeographyVal GeographyType()
GEOMETRIE(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(naam, dataType, [nullable]). (4)
VARIANT VariantType VariantVal VariantType()
OBJECT Niet ondersteund Niet ondersteund Niet ondersteund

R

SQL-type Gegevenstype Waardetype API voor toegang tot of het maken van gegevenstype
TINYINT ByteType integer (1) 'byte'
SMALLINT ShortType geheel getal (1) 'short'
INT IntegerType integer 'integer'
BIGINT LongType geheel getal (1) 'long'
FLOAT FloatType numeriek (1) 'float'
DOUBLE DoubleType numeric 'double'
DECIMAL(p,s) DecimalType Niet ondersteund Niet ondersteund
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'
jaar-maandinterval YearMonthIntervalType Niet ondersteund Niet ondersteund
dag-tijdsinterval DayTimeIntervalType Niet ondersteund Niet ondersteund
GEOGRAFIE(srid) Niet ondersteund Niet ondersteund Niet ondersteund
GEOMETRIE(srid) Niet ondersteund Niet ondersteund Niet ondersteund
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 benoemde lijst 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 Niet ondersteund Niet ondersteund Niet ondersteund
OBJECT Niet ondersteund Niet ondersteund Niet ondersteund

(1) Getallen worden tijdens runtime geconverteerd naar het domein. Zorg ervoor dat getallen binnen het bereik vallen.

(2) De optionele waarde wordt standaard ingesteld TRUEop .

(3) Intervaltypen

  • 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.