Delen via


Data types

Van toepassing op: vinkje als ja aan Databricks SQL vinkje als ja aan Databricks Runtime

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

Ondersteunde gegevenstypen

Azure Databricks ondersteunt de volgende gegevenstypen:

Gegevenssoort Beschrijving
BIGINT Vertegenwoordigt 8 byte ondertekende gehele getallen.
BINAIR Hiermee worden bytereekswaarden vertegenwoordigd.
BOOLEAANS Vertegenwoordigt Booleaanse waarden.
DATUM 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.
DUBBEL Vertegenwoordigt 8-byte drijvendekommanummers met dubbele precisie.
DRIJVEN 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.
LEEGTE Vertegenwoordigt de niet-getypte NULL.
SMALLINT Vertegenwoordigt 2-byte ondertekende gehele getallen.
SNAAR 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.

Belangrijk

Delta Lake biedt geen ondersteuning VOID voor typen.INTERVAL

Classificatie van gegevenstypen

Gegevenstypen worden gegroepeerd in de volgende klassen:

Taaltoewijzingen

Van toepassing op: vinkje als ja aan 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
DRIJVEN FloatType Float FloatType
DUBBEL DoubleType Dubbel DoubleType
DECIMAL(p,s) DecimalType java.math.BigDecimal DecimalType
SNAAR StringType String StringType
BINAIR BinaryType Matrix[Byte] BinaryType
BOOLEAANS BooleanType Booleaanse waarde BooleanType
TIMESTAMP TimestampType java.sql.Timestamp TimestampType
TIMESTAMP_NTZ TimestampNTZType java.time.LocalDateTime TimestampNTZType
DATUM 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
DRIJVEN FloatType float of float DataTypes.FloatType
DUBBEL DoubleType dubbel of dubbel DataTypes.DoubleType
DECIMAL(p,s) DecimalType java.math.BigDecimal DataTypes.createDecimalType() DataTypes.createDecimalType(precision, scale).
SNAAR StringType String DataTypes.StringType
BINAIR BinaryType byte[] DataTypes.BinaryType
BOOLEAANS BooleanType Booleaanse of Booleaanse waarde DataTypes.BooleanType
TIMESTAMP TimestampType java.sql.Timestamp DataTypes.TimestampType
TIMESTAMP_NTZ TimestampNTZType java.time.LocalDateTime DataTypes.TimestampNTZType
DATUM 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()
DRIJVEN FloatType float (1) FloatType()
DUBBEL DoubleType zwevend DoubleType()
DECIMAL(p,s) DecimalType decimaal. Decimaal DecimalType()
SNAAR StringType tekenreeks StringType()
BINAIR BinaryType bytearray BinaryType()
BOOLEAANS BooleanType bool BooleanType()
TIMESTAMP TimestampType datetime.datetime TimestampType()
TIMESTAMP_NTZ TimestampNTZType datetime.datetime TimestampNTZType()
DATUM 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'
DRIJVEN FloatType numeriek (1) 'float'
DUBBEL DoubleType numeriek 'dubbel'
DECIMAL(p,s) DecimalType Niet ondersteund Niet ondersteund
SNAAR StringType teken 'tekenreeks'
BINAIR BinaryType raw 'binair'
BOOLEAANS BooleanType logisch 'bool'
TIMESTAMP TimestampType POSIXct 'tijdstempel'
TIMESTAMP_NTZ TimestampNTZType datetime.datetime TimestampNTZType()
DATUM 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 endField 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 waarden kunnen hebben null . Dit is de standaardinstelling.