Data types

Van toepassing op: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:

Gegevenstype Omschrijving
BIGINT Vertegenwoordigt 8 byte ondertekende gehele getallen.
BINAIRE Hiermee worden bytereekswaarden vertegenwoordigd.
BOOLEAANSE 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.
DUBBELE Vertegenwoordigt 8-byte drijvendekommanummers met dubbele precisie.
FLOAT Vertegenwoordigt 4-byte drijvendekommanummers met één 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 ondertekende gehele getallen.
TEKENREEKS 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 Vertegenwoordigt 1-byte ondertekende gehele getallen.
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.

Classificatie van gegevenstypen

Gegevenstypen worden gegroepeerd in de volgende klassen:

Taaltoewijzingen

Van toepassing op: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 Gegevenstype Waardetype API voor toegang tot of het maken van gegevenstype
TINYINT ByteType Byte ByteType
SMALLINT ShortType Kort ShortType
INT IntegerType Int IntegerType
BIGINT LongType Lang LongType
FLOAT FloatType Zwevend FloatType
DUBBELE DoubleType Dubbel DoubleType
DECIMAL(p,s) DecimalType java.math.BigDecimal DecimalType
TEKENREEKS StringType String StringType
BINAIRE BinaryType Matrix[Byte] BinaryType
BOOLEAANSE BooleanType Booleaanse waarde 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)
ARRAY ArrayType scala.collection.Seq ArrayType(elementType [, containsNull]). (2)
KAART MapType scala.collection.Map MapType(keyType, valueType [, valueContainsNull]). (2)
STRUCT StructType org.apache.spark.sql.Row StructType(velden). velden is een Seq 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

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 Gegevenstype 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
DUBBELE DoubleType dubbel of dubbel DataTypes.DoubleType
DECIMAL(p,s) DecimalType java.math.BigDecimal DataTypes.createDecimalType() DataTypes.createDecimalType(precision, scale).
TEKENREEKS StringType String DataTypes.StringType
BINAIRE BinaryType byte[] DataTypes.BinaryType
BOOLEAANSE 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)
ARRAY ArrayType ava.util.List DataTypes.createArrayType(elementType [, containsNull]).(2)
KAART MapType java.util.Map DataTypes.createMapType(keyType, valueType [, valueContainsNull]).(2)
STRUCT StructType org.apache.spark.sql.Row DataTypes.createStructType(velden). 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

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()
DUBBELE DoubleType zwevend DoubleType()
DECIMAL(p,s) DecimalType Decimaal. Decimaal DecimalType()
TEKENREEKS StringType tekenreeks StringType()
BINAIRE BinaryType Bytearray BinaryType()
BOOLEAANSE 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)
ARRAY ArrayType lijst, tuple of matrix ArrayType(elementType, [containsNull]).(2)
KAART MapType Dict MapType(keyType, valueType, [valueContainsNull]).(2)
STRUCT StructType lijst of tuple StructType(velden). veld is een Seq 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)

R

SQL-type Gegevenstype Waardetype API voor toegang tot of het maken van gegevenstype
TINYINT ByteType geheel getal (1) 'byte'
SMALLINT ShortType geheel getal (1) 'short'
INT IntegerType geheel getal 'geheel getal'
BIGINT LongType geheel getal (1) 'lang'
FLOAT FloatType numeriek (1) 'float'
DUBBELE DoubleType numeriek 'dubbel'
DECIMAL(p,s) DecimalType Niet ondersteund Niet ondersteund
TEKENREEKS StringType teken 'tekenreeks'
BINAIRE BinaryType raw 'binair'
BOOLEAANSE BooleanType Logische 'bool'
TIMESTAMP TimestampType POSIXct 'tijdstempel'
TIMESTAMP_NTZ TimestampNTZType datetime.datetime TimestampNTZType()
DATE DateType Datum 'datum'
jaar-maandinterval YearMonthIntervalType Niet ondersteund Niet ondersteund
dag-tijdsinterval DayTimeIntervalType Niet ondersteund Niet ondersteund
ARRAY ArrayType vector of lijst list(type='array', elementType=elementType, containsNull=[containsNull]).(2)
KAART MapType omgeving list(type='map', keyType=keyType, valueType=valueType, valueContainsNull=[valueContainsNull]).(2)
STRUCT StructType benoemde lijst list(type='struct', fields=fields). velden is een Seq 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)

(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 zijn 0(MONTH) en endField1(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 waarden kunnen hebben null . Dit is de standaardinstelling.