Sdílet prostřednictvím


Datové typy

Platí pro:označeno jako ano Databricks SQL označeno jako ano 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:označeno zaškrtnutím ano 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í:

    startField je levý atribut typu a endField je pravý atribut typu. Platné hodnoty startField a endField jsou 0(MONTH) a 1(YEAR).

  • DayTimeIntervalType([startField,] endField): Představuje denní interval, která se skládá z souvislé podmnožiny následujících polí:

    startField je levý atribut typu a endField je pravý atribut typu. Platné hodnoty startField a endField jsou 0(DAY), 1(HOUR), 2(MINUTE), 3(SECOND).

(4)StructType

  • StructType(fields) Představuje hodnoty se strukturou popsanou sekvencí, seznamem nebo polem StructField(polí). Dvě pole se stejným názvem nejsou povolená.
  • StructField(name, dataType, nullable) Představuje pole v objektu StructType. Název pole je označen pomocí name. Datový typ pole je označen typem dataType. nullable označuje, zda tyto pole mohou mít hodnoty null. Tato možnost je výchozí.