Datové typy
Platí pro: Databricks SQL Databricks Runtime
Pravidla určující způsob řešení konfliktů mezi datovými typy najdete v tématu Pravidla datového typu SQL.
Podporované datové typy
Azure Databricks podporuje následující datové typy:
Datový typ | Popis |
---|---|
BIGINT | Představuje 8 bajtová celočíselná čísla. |
BINÁRNÍ | Představuje bajtové sekvenční hodnoty. |
BOOLEOVSKÝ | Představuje logické hodnoty. |
DATE (Datum) | Představuje hodnoty obsahující hodnoty pro rok, měsíc a den bez časového pásma. |
DECIMAL(p;s) | Představuje čísla s maximální přesností p a pevným měřítkem s . |
DVOJITÝ | Představuje čísla s plovoucí desetinnou čárkou 8 bajtů s dvojitou přesností. |
PLOUT | Představuje čísla s plovoucí desetinnou čárkou s přesností na 4 bajty. |
INT | Představuje 4 bajtová celočíselná čísla. |
INTERVALQualifier | Představuje časové intervaly v rozsahu sekund nebo měsíců. |
PRÁZDNOTA | Představuje netypovanou hodnotu NULL. |
SMALLINT | Představuje 2 bajtová celočíselná čísla. |
ŘETĚZEC | Představuje hodnoty řetězce znaků. |
ČASOVÉ RAZÍTKO | Představuje hodnoty obsahující hodnoty pro rok, měsíc, den, hodinu, minutu a sekundu s místním časovým pásmem relace. |
TIMESTAMP_NTZ | Představuje hodnoty tvořené hodnotami polí rok, měsíc, den, hodina, minuta a sekunda. Všechny operace se provádějí bez zohlednění časového pásma. |
TINYINT | Představuje 1 bajtová celočíselná čísla. |
ARRAY < – elementType > | Představuje hodnoty tvořící sekvenci prvků s typem .elementType |
MAP < keyType, valueType > | Představuje hodnoty tvořené sadou párů klíč-hodnota. |
STRUCT < [fieldName: fieldType [NOT NULL][COMMENT str][, ...]] > | Představuje hodnoty se strukturou popsanou posloupností polí. |
VARIANTA | Představuje částečně strukturovaná data. |
OBJEKT | Představuje hodnoty v objektu se strukturou VARIANT popsanou sadou polí. |
Důležité
Delta Lake nepodporuje VOID
typ.
Klasifikace datových typů
Datové typy jsou seskupené do následujících tříd:
- Celočíselné číselné typy představují celá čísla:
- Přesné číselné typy představují čísla base-10:
- Binární typy s plovoucí desetinnou čárkou používají exponenty a binární reprezentaci k pokrytí velkého rozsahu čísel:
- Číselné typy představují všechny číselné datové typy:
- Typy data a času představují komponenty data a času:
- DATE (Datum)
- ČASOVÉ RAZÍTKO
- TIMESTAMP_NTZ
- Jednoduché typy jsou typy definované uchováváním hodnot singleton:
- Komplexní typy se skládají z několika komponent komplexních nebo jednoduchých typů:
Mapování jazyka
Platí pro: Databricks Runtime
Scala
Datové typy Spark SQL jsou definovány v balíčku org.apache.spark.sql.types
. Přístup k nim získáte importem balíčku:
import org.apache.spark.sql.types._
Typ SQL | Datový typ | Typ hodnoty | Rozhraní API pro přístup k datovému typu nebo jeho vytvoření |
---|---|---|---|
TINYINT | ByteType | Byte | ByteType |
SMALLINT | Krátký typ | Krátké | Krátký typ |
INT | IntegerType | Int | IntegerType |
BIGINT | LongType | Dlouhé celé číslo | LongType |
PLOUT | FloatType | Float | FloatType |
DVOJITÝ | DoubleType | Hodnota s dvojitou přesností | DoubleType |
DECIMAL(p;s) | DecimalType | java.math.BigDecimal | DecimalType |
ŘETĚZEC | StringType | String | StringType |
BINÁRNÍ | BinaryType | Pole[Bajt] | BinaryType |
BOOLEOVSKÝ | BooleanType | Logická hodnota | BooleanType |
ČASOVÉ RAZÍTKO | TimestampType | java.sql.Timestamp | TimestampType |
TIMESTAMP_NTZ | TimestampNTZType | java.time.LocalDateTime | TimestampNTZType |
DATE (Datum) | Typ data | java.sql.Date | Typ data |
interval mezi rokem | YearMonthIntervalType | java.time.Period | YearMonthIntervalType (3) |
denní interval | DayTimeIntervalType | java.time.Duration | DayTimeIntervalType (3) |
POLE | ArrayType | scala.collection.Seq | ArrayType(elementType [; containsNull]). (2) |
MAPA | MapType | scala.collection.Map | MapType(keyType; valueType [; valueContainsNull]). (2) |
STRUCT | Typ struktury | org.apache.spark.sql.Row | StructType(pole). pole je seq of StructField. 4. |
StructField | Typ hodnoty datového typu tohoto pole (například Int pro StructField s datovým typem IntegerType) | StructField(name, dataType [, nullable]). 4 | |
VARIANTA | VariantType | org.apache.spark.unsafe.type.VariantVal | VariantType |
OBJEKT | Nepodporuje se | Nepodporováno | Nepodporováno |
Java
Datové typy Spark SQL jsou definovány v balíčku org.apache.spark.sql.types
. Pokud chcete získat přístup k datovému typu nebo ho vytvořit, použijte metody objektu pro vytváření, které jsou k dispozici v org.apache.spark.sql.types.DataTypes
souboru .
Typ SQL | Datový typ | Typ hodnoty | Rozhraní API pro přístup k datovému typu nebo jeho vytvoření |
---|---|---|---|
TINYINT | ByteType | bajt nebo bajt | DataTypes.ByteType |
SMALLINT | Krátký typ | krátká nebo krátká | DataTypes.ShortType |
INT | IntegerType | int nebo Integer | DataTypes.IntegerType |
BIGINT | LongType | dlouhé nebo dlouhé | DataTypes.LongType |
PLOUT | FloatType | float nebo float | DataTypes.FloatType |
DVOJITÝ | DoubleType | double or Double | DataTypes.DoubleType |
DECIMAL(p;s) | DecimalType | java.math.BigDecimal | DataTypes.createDecimalType() DataTypes.createDecimalType(přesnost, měřítko). |
ŘETĚZEC | StringType | String | DataTypes.StringType |
BINÁRNÍ | BinaryType | byte[] | DataTypes.BinaryType |
BOOLEOVSKÝ | BooleanType | logická hodnota nebo logická hodnota | DataTypes.BooleanType |
ČASOVÉ RAZÍTKO | TimestampType | java.sql.Timestamp | DataTypes.TimestampType |
TIMESTAMP_NTZ | TimestampNTZType | java.time.LocalDateTime | DataTypes.TimestampNTZType |
DATE (Datum) | Typ data | java.sql.Date | DataTypes.DateType |
interval mezi rokem | YearMonthIntervalType | java.time.Period | YearMonthIntervalType (3) |
denní interval | DayTimeIntervalType | java.time.Duration | DayTimeIntervalType (3) |
POLE | ArrayType | ava.util.List | DataTypes.createArrayType(elementType [, containsNull]).(2) |
MAPA | MapType | java.util.Map | DataTypes.createMapType(keyType, valueType [, valueContainsNull]).(2) |
STRUCT | Typ struktury | org.apache.spark.sql.Row | DataTypes.createStructType(pole). pole jsou seznam nebo pole StructField. 4 |
StructField | Typ hodnoty datového typu tohoto pole (například int pro StructField s datovým typem IntegerType) | DataTypes.createStructField(name, dataType, nullable) 4 | |
VARIANTA | VariantType | org.apache.spark.unsafe.type.VariantVal | VariantType |
OBJEKT | Nepodporuje se | Nepodporováno | Nepodporováno |
Python
Datové typy Spark SQL jsou definovány v balíčku pyspark.sql.types
. Přístup k nim získáte importem balíčku:
from pyspark.sql.types import *
Typ SQL | Datový typ | Typ hodnoty | Rozhraní API pro přístup k datovému typu nebo jeho vytvoření |
---|---|---|---|
TINYINT | ByteType | int nebo long. (1) | ByteType() |
SMALLINT | Krátký typ | int nebo long. (1) | ShortType() |
INT | IntegerType | int nebo long | IntegerType() |
BIGINT | LongType | long (1) | LongType() |
PLOUT | FloatType | float (1) | FloatType() |
DVOJITÝ | DoubleType | float (číslo s plovoucí řádovou čárkou) | DoubleType() |
DECIMAL(p;s) | DecimalType | desetinný. Desetinný | DecimalType() |
ŘETĚZEC | StringType | string | StringType() |
BINÁRNÍ | BinaryType | bytearray | BinaryType() |
BOOLEOVSKÝ | BooleanType | bool | BooleanType() |
ČASOVÉ RAZÍTKO | TimestampType | datetime.datetime | TimestampType() |
TIMESTAMP_NTZ | TimestampNTZType | datetime.datetime | TimestampNTZType() |
DATE (Datum) | Typ data | datetime.date | DateType() |
interval mezi rokem | YearMonthIntervalType | Nepodporováno | Nepodporováno |
denní interval | DayTimeIntervalType | datetime.timedelta | DayTimeIntervalType (3) |
POLE | ArrayType | seznam, řazená kolekce členů nebo pole | ArrayType(elementType; [containsNull]).(2) |
MAPA | MapType | Dict | MapType(keyType, valueType, [valueContainsNull]).(2) |
STRUCT | Typ struktury | seznam nebo řazená kolekce členů | StructType(pole). pole je Seq of StructField. (4) |
StructField | Typ hodnoty datového typu tohoto pole (například Int pro StructField s datovým typem IntegerType) | StructField(name, dataType, [nullable]).(4) | |
VARIANTA | VariantType | VariantVal | VariantType() |
OBJEKT | Nepodporuje se | Nepodporováno | Nepodporováno |
R
Typ SQL | Datový typ | Typ hodnoty | Rozhraní API pro přístup k datovému typu nebo jeho vytvoření |
---|---|---|---|
TINYINT | ByteType | celé číslo (1) | "bajt" |
SMALLINT | Krátký typ | celé číslo (1) | "short" |
INT | IntegerType | integer | Integer |
BIGINT | LongType | celé číslo (1) | "long" |
PLOUT | FloatType | numeric (1) | "float" |
DVOJITÝ | DoubleType | numerické | "double" |
DECIMAL(p;s) | DecimalType | Nepodporováno | Nepodporováno |
ŘETĚZEC | StringType | . | Řetězec |
BINÁRNÍ | BinaryType | raw | 'binary' |
BOOLEOVSKÝ | BooleanType | logický | Bool |
ČASOVÉ RAZÍTKO | TimestampType | POSIXct | Časové razítko |
TIMESTAMP_NTZ | TimestampNTZType | datetime.datetime | TimestampNTZType() |
DATE (Datum) | Typ data | Datum | 'datum' |
interval mezi rokem | YearMonthIntervalType | Nepodporováno | Nepodporováno |
denní interval | DayTimeIntervalType | Nepodporováno | Nepodporováno |
POLE | ArrayType | vektor nebo seznam | list(type='array', elementType=elementType, containsNull=[containsNull]).(2) |
MAPA | MapType | prostředí | list(type='map', keyType=keyType, valueType=valueType, valueContainsNull=[valueContainsNull]).(2) |
STRUCT | Typ struktury | pojmenovaný seznam | list(type='struct'; fields=fields). pole je seq of StructField. (4) |
StructField | Typ hodnoty datového typu tohoto pole (například celé číslo pole StructField s datovým typem IntegerType) | list(name=name, type=dataType, nullable=[nullable]).(4) | |
VARIANTA | Nepodporuje se | Nepodporováno | Nepodporováno |
OBJEKT | Nepodporuje se | Nepodporováno | Nepodporováno |
(1) Čísla se za běhu převedou na doménu. Ujistěte se, že jsou čísla v rozsahu.
(2) Volitelná hodnota je výchozí TRUE
hodnota .
(3) Typy intervalů
YearMonthIntervalType([startField,] endField)
: Představuje interval roku, který je tvořen souvislou podmnožinou následujících polí:startField
je pole úplně vlevo aendField
je pole typu úplně vpravo. Platné hodnotystartField
a jsou0(MONTH)
aendField
1(YEAR)
.DayTimeIntervalType([startField,] endField)
: Představuje denní interval, který se skládá z souvislé podmnožina následujících polí:startField
je pole úplně vlevo aendField
je pole typu úplně vpravo. Platné hodnotystartField
aendField
jsou0(DAY)
, ,1(HOUR)
2(MINUTE)
,3(SECOND)
.
(4) StructType
StructType(fields)
Představuje hodnoty se strukturou popsanou sekvencí, seznamem nebo polemStructField
(polí). Dvě pole se stejným názvem nejsou povolená.StructField(name, dataType, nullable)
Představuje pole v objektuStructType
. Název pole je označen .name
Datový typ pole je označen typem dataType.nullable
označuje, zda mohou mítnull
hodnoty těchto polí. Tato možnost je výchozí.