Data types
Van toepassing op: Databricks SQL 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. |
VARIANT | Vertegenwoordigt semi-gestructureerde gegevens. |
OBJECT | Vertegenwoordigt waarden in een VARIANT met de structuur die wordt beschreven door een set velden. |
Belangrijk
Delta Lake biedt geen ondersteuning voor het VOID
type.
Classificatie van gegevenstypen
Gegevenstypen worden gegroepeerd in de volgende klassen:
- Integrale numerieke typen vertegenwoordigen gehele getallen:
- Exacte numerieke typen vertegenwoordigen grondtal-10 getallen:
- Binaire drijvendekommatypen maken gebruik van exponenten en een binaire weergave om een groot aantal getallen te dekken:
- Numerieke typen vertegenwoordigen alle numerieke gegevenstypen:
- Datum- en tijdtypen vertegenwoordigen datum- en tijdonderdelen:
- Eenvoudige typen zijn typen die worden gedefinieerd door singleton-waarden vast te houden:
- Complexe typen bestaan uit meerdere onderdelen van complexe of eenvoudige typen:
Taaltoewijzingen
Van toepassing op: 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 | |
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 | 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 | |
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() |
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) | |
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 | 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) | |
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 TRUE
op .
(3) Intervaltypen
YearMonthIntervalType([startField,] endField)
: Vertegenwoordigt een jaarmaandinterval dat bestaat uit een aaneengesloten subset van de volgende velden:startField
is het meest linkse veld enendField
is het meest rechtse veld van het type. Geldige waarden vanstartField
en zijn0(MONTH)
enendField
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 enendField
is het meest rechtse veld van het type. Geldige waarden vanstartField
enendField
zijn0(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 vanStructField
s (velden). Twee velden met dezelfde naam zijn niet toegestaan.StructField(name, dataType, nullable)
Vertegenwoordigt een veld in eenStructType
. De naam van een veld wordt aangegeven doorname
. Het gegevenstype van een veld wordt aangegeven door dataType.nullable
geeft aan of waarden van deze velden waarden kunnen hebbennull
. Dit is de standaardinstelling.