Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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 | Description |
|---|---|
| BIGINT | Představuje 8 bajtová celočíselná čísla. |
| BINARY | Představuje bajtové sekvenční hodnoty. |
| BOOLEAN | Představuje boolovské hodnoty. |
| DATE | 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. |
| DOUBLE | Představuje čísla s plovoucí desetinnou čárkou 8 bajtů s dvojitou přesností. |
| FLOAT | 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ů. |
| VOID | Představuje netypovanou hodnotu NULL. |
| SMALLINT | Představuje 2 bajtová celočíselná čísla. |
| STRING | Představuje hodnoty řetězce znaků. |
| TIMESTAMP | 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. |
| GEOGRAPHY(srid) | Představuje zeměpisné hodnoty, jejichž referenční souřadnicový systém je geografický (zeměpisná délka a zeměpisná šířka ve stupních) a je definován hodnotou srid . Pokud je srid nastaveno na ANY, referenční systém souřadnic není pevně zakódován v typu a stane se hodnotou za běhu. |
| GEOMETRY(srid) | Představuje geometrické hodnoty, jejichž referenční systém souřadnic je považován za kartézský a je definován hodnotou srid . Pokud je srid nastaveno na ANY, referenční systém souřadnic není pevně zakódován v typu a stane se hodnotou za běhu. |
| ARRAY < – elementType > | Představuje hodnoty, které tvoří posloupnost 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í. |
| VARIANT | Představuje částečně strukturovaná data. |
| OBJECT | Představuje hodnoty v VARIANT se strukturou popsanou sadou polí. |
Important
Delta Lake nepodporuje VOID typ.
Klasifikace datových typů
Datové typy jsou seskupené do následujících tříd:
Celočíselné typy
Celočíselné číselné typy představují celá čísla:
Přesné číselné typy
Přesné číselné typy představují čísla base-10:
Binární typy s plovoucí desetinnou čárkou
Binární typy s plovoucí desetinnou čárkou používají exponenty a binární reprezentaci k pokrytí velkého rozsahu čísel:
Číselné typy
Číselné typy představují všechny číselné datové typy:
Typy data a času
Typy data a času představují prvky data a času:
Geoprostorové typy
Geoprostorové typy představují geometrické nebo geografické objekty:
Jednoduché typy
Jednoduché typy jsou typy definované uchováváním hodnot singleton:
Komplexní typy
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 typu dat nebo jeho vytvoření |
|---|---|---|---|
| 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 | logický | BooleanType |
| TIMESTAMP | TimestampType | java.sql.Timestamp | TimestampType |
| TIMESTAMP_NTZ | TimestampNTZType | java.time.LocalDateTime | TimestampNTZType |
| DATE | DateType | java.sql.Date | DateType |
| interval rok-měsíc | YearMonthIntervalType | java.time.Period | TypIntervaluRokMěsíc (3) |
| časový interval během dne | DayTimeIntervalType | java.time.Duration | DayTimeIntervalType (3) |
| GEOGRAPHY(srid) | TypGeografie | org.apache.spark.unsafe.type.GeographyVal | TypGeografie |
| GEOMETRY(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). Pole je sekvencí 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 | |
| VARIANT | VariantType | org.apache.spark.unsafe.type.VariantVal | VariantType |
| OBJECT | Nepodporováno | Není podporováno | Není podporová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 tovární metody dostupné v org.apache.spark.sql.types.DataTypes.
| Typ SQL | Datový typ | Typ hodnoty | Rozhraní API pro přístup k typu dat nebo jeho vytvoření |
|---|---|---|---|
| TINYINT | ByteType | bajt nebo Byte | DataTypes.ByteType |
| SMALLINT | ShortType | krátká nebo krátká | DataTypes.ShortType |
| INT | IntegerType | int nebo Integer | DataTypes.IntegerType |
| BIGINT | LongType | dlouhé nebo Long | DataTypes.LongType |
| FLOAT | FloatType | float nebo Float | DataTypes.FloatType |
| DOUBLE | DoubleType | dvojitý nebo Double | DataTypes.DoubleType |
| DECIMAL(p,s) | DecimalType | java.math.BigDecimal | DataTypes.createDecimalType() DataTypes.createDecimalType(přesnost, měřítko). |
| STRING | StringType | String | DataTypes.StringType |
| BINARY | BinaryType | byte[] | DataTypes.BinaryType |
| BOOLEAN | BooleanType | boolean nebo Boolean | DataTypes.BooleanType |
| TIMESTAMP | TimestampType | java.sql.Timestamp | DataTypes.TimestampType |
| TIMESTAMP_NTZ | TimestampNTZType | java.time.LocalDateTime | DataTypes.TimestampNTZType |
| DATE | DateType | java.sql.Date | DataTypes.DateType |
| interval rok-měsíc | YearMonthIntervalType | java.time.Period | TypIntervaluRokMěsíc (3) |
| časový interval během dne | DayTimeIntervalType | java.time.Duration | DayTimeIntervalType (3) |
| GEOGRAPHY(srid) | TypGeografie | org.apache.spark.unsafe.type.GeographyVal | TypGeografie |
| GEOMETRY(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). Pole je seznam nebo pole typu 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 | |
| VARIANT | VariantType | org.apache.spark.unsafe.type.VariantVal | VariantType |
| OBJECT | Nepodporováno | Není podporováno | Není podporová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 typu dat nebo jeho vytvoření |
|---|---|---|---|
| TINYINT | ByteType | int nebo long. (1) | ByteType() |
| SMALLINT | ShortType | int nebo long. (1) | ShortType() |
| INT | IntegerType | int nebo long | IntegerType() |
| BIGINT | LongType | long (1) | LongType() |
| FLOAT | FloatType | float (1) | FloatType() |
| DOUBLE | DoubleType | float | DoubleType() |
| DECIMAL(p,s) | DecimalType | decimal.Decimal | DecimalType() |
| STRING | StringType | řetězec | 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() |
| interval rok-měsíc | YearMonthIntervalType | Není podporováno | Není podporováno |
| časový interval během dne | DayTimeIntervalType | datetime.timedelta | DayTimeIntervalType (3) |
| GEOGRAPHY(srid) | TypGeografie | GeographyVal | GeographyType() |
| GEOMETRY(srid) | GeometryType | GeometryVal | GeometryType() |
| ARRAY | ArrayType | seznam, ntice nebo pole | ArrayType(elementType; [containsNull]). (2) |
| MAP | MapType | dict | MapType(keyType, valueType, [valueContainsNull]). (2) |
| STRUCT | StructType | seznam nebo n-tice | StructType(fields). 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) | |
| VARIANT | VariantType | VariantVal | VariantType() |
| OBJECT | Nepodporováno | Není podporováno | Není podporováno |
R
| Typ SQL | Datový typ | Typ hodnoty | Rozhraní API pro přístup k typu dat nebo jeho vytvoření |
|---|---|---|---|
| TINYINT | ByteType | celé číslo (1) | 'byte' |
| SMALLINT | ShortType | celé číslo (1) | 'short' |
| INT | IntegerType | integer | 'integer' |
| BIGINT | LongType | celé číslo (1) | 'long' |
| FLOAT | FloatType | číselný (1) | 'float' |
| DOUBLE | DoubleType | numeric | 'double' |
| DECIMAL(p,s) | DecimalType | Není podporováno | Není podporováno |
| STRING | StringType | znak | 'string' |
| BINARY | BinaryType | raw | 'binary' |
| BOOLEAN | BooleanType | logical | 'bool' |
| TIMESTAMP | TimestampType | POSIXct | 'timestamp' |
| TIMESTAMP_NTZ | TimestampNTZType | datetime.datetime | TimestampNTZType() |
| DATE | DateType | Date | 'date' |
| interval rok-měsíc | YearMonthIntervalType | Není podporováno | Není podporováno |
| časový interval během dne | DayTimeIntervalType | Není podporováno | Není podporováno |
| GEOGRAPHY(srid) | Není podporováno | Není podporováno | Není podporováno |
| GEOMETRY(srid) | Není podporováno | Není podporováno | Není podporováno |
| ARRAY | ArrayType | vektor nebo seznam | list(type='array', elementType=elementType, containsNull=[containsNull]). (2) |
| MAP | MapType | prostředí | list(type='map', keyType=keyType, valueType=valueType, valueContainsNull=[valueContainsNull]). (2) |
| STRUCT | StructType | pojmenovaný seznam | list(type='struct'; fields=fields). Pole je sekvencí 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) | |
| VARIANT | Nepodporováno | Není podporováno | Není podporováno |
| OBJECT | Nepodporováno | Není podporováno | Není podporováno |
(1) Čísla se za běhu převedou na doménu. Ujistěte se, že jsou čísla v zadaném rozsahu.
(2) Volitelná hodnota má výchozí hodnotu TRUE.
(3) Typy intervalů
YearMonthIntervalType([startField,] endField): Představuje interval roku a měsíce, který je tvořen souvislou podmnožinou následujících polí:startFieldje levý atribut typu aendFieldje pravý atribut typu. Platné hodnotystartFieldaendFieldjsou0(MONTH)a1(YEAR).DayTimeIntervalType([startField,] endField): Představuje denní interval, která se skládá z souvislé podmnožiny následujících polí:startFieldje levý atribut typu aendFieldje pravý atribut typu. Platné hodnotystartFieldaendFieldjsou0(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 pomocíname. Datový typ pole je označen typem dataType.nullableoznačuje, zda tyto pole mohou mít hodnotynull. Tato možnost je výchozí.