Udostępnij za pomocą


Typy danych

Dotyczy:zaznacz pole wyboru oznaczone jako tak Databricks SQL zaznacz pole wyboru oznaczone jako tak Databricks Runtime

Aby uzyskać reguły dotyczące sposobu rozwiązywania konfliktów między typami danych, zobacz Reguły typów danych SQL.

Obsługiwane typy danych:

Usługa Azure Databricks obsługuje następujące typy danych:

Typ danych Description
BIGINT Reprezentuje 8-bajtowe liczby całkowite ze znakiem.
BINARY Reprezentuje wartości sekwencji bajtów.
BOOLEAN Reprezentuje wartości logiczne.
DATE Reprezentuje wartości składające się z wartości pól rok, miesiąc i dzień bez strefy czasowej.
DECIMAL(p,s) Reprezentuje liczby o maksymalnej precyzji p i stałej skali s.
DOUBLE Reprezentuje 8-bajtowe liczby zmiennoprzecinkowe o podwójnej precyzji.
FLOAT Reprezentuje 4-bajtowe liczby zmiennoprzecinkowe o pojedynczej precyzji.
INT Reprezentuje 4-bajtowe liczby całkowite ze znakiem.
Interwał interwałuQualifier Reprezentuje interwały czasu w skali sekund lub miesięcy.
VOID Reprezentuje nietypowaną wartość NULL.
SMALLINT Reprezentuje 2-bajtowe liczby całkowite ze znakiem.
STRING Reprezentuje wartości ciągów znaków.
TIMESTAMP Reprezentuje wartości składające się z wartości pól rok, miesiąc, dzień, godzina, minuta i sekunda z lokalną strefą czasową sesji.
TIMESTAMP_NTZ Reprezentuje wartości składające się z wartości pól rok, miesiąc, dzień, godzina, minuta i sekunda. Wszystkie operacje są wykonywane bez uwzględniania strefy czasowej.
TINYINT Reprezentuje jednobajtowe liczby całkowite ze znakiem.
GEOGRAPHY (srid) Reprezentuje wartości geograficzne, których układ odniesienia współrzędnych jest geograficzny (długość geograficzna i szerokość geograficzna w stopniach) i jest definiowany srid przez wartość . Jeśli srid jest ustawiony na ANY, system odniesienia współrzędnych nie jest zakodowany w typie i staje się wartością w czasie wykonywania.
GEOMETRY(srid) Reprezentuje wartości geometryczne, których układ odniesienia współrzędnych jest rozumiany jako kartezjański i jest definiowany przez wartość srid. Jeśli srid jest ustawiony na ANY, system odniesienia współrzędnych nie jest zakodowany w typie i staje się wartością w czasie wykonywania.
ARRAY < , typ elementu > Reprezentuje wartości składające się z sekwencji elementów o typie elementType.
MAP < keyType,valueType > Reprezentuje wartości składające się z zestawu par klucz-wartość.
< Struktura [fieldName: fieldType [NOT NULL][COMMENT str][, ...]] > Reprezentuje wartości ze strukturą opisaną przez sekwencję pól.
VARIANT Reprezentuje dane częściowo ustrukturyzowane.
OBJECT Reprezentuje wartości w obiekcie VARIANT ze strukturą opisaną przez zestaw pól.

Important

Delta Lake nie obsługuje typu VOID.

Klasyfikacja typów danych

Typy danych są pogrupowane w następujące klasy:

Typy liczb całkowitych

Typy liczb całkowitych reprezentują liczby całkowite:

Dokładne typy liczbowe

Dokładne typy liczbowe reprezentują liczby base-10:

Typy zmiennoprzecinkowe binarne

Binarne typy zmiennoprzecinkowe używają wykładników i reprezentacji binarnej do pokrycia dużego zakresu liczb:

Typy liczbowe

Typy liczbowe reprezentują wszystkie typy danych liczbowych:

Typy daty i godziny

Typy daty i godziny reprezentują składniki daty i godziny:

Typy geoprzestrzenne

Typy geoprzestrzenne reprezentują obiekty geometryczne lub geograficzne:

Typy proste

Proste typy są typami zdefiniowanymi przez przechowywanie pojedynczych wartości:

Typy złożone

Złożone typy składają się z wielu składników złożonych lub prostych typów:

Mapowania języków

Dotyczy:zaznacz pole wyboru oznaczone jako tak Databricks Runtime

Scala

Typy danych Spark SQL są definiowane w pakiecie org.apache.spark.sql.types. Uzyskujesz do nich dostęp, importując pakiet:

import org.apache.spark.sql.types._
Typ SQL Typ danych Typ wartości Interfejs API umożliwiający uzyskiwanie dostępu do typu danych lub tworzenie go
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 logiczny BooleanType
TIMESTAMP TimestampType java.sql.Timestamp TimestampType
TIMESTAMP_NTZ TimestampNTZType java.time.LocalDateTime TimestampNTZType
DATE DateType java.sql.Date DateType
interwał miesiąca roku YearMonthIntervalType java.time.Period YearMonthIntervalType (3)
Interwał dnia DayTimeIntervalType java.time.Duration TypPrzedziałuCzasuDnia (3)
GEOGRAPHY (srid) GeographyType org.apache.spark.unsafe.type.GeographyVal TypGeografii
GEOMETRY(srid) GeometryType org.apache.spark.niebezpieczne.type.GeometryVal GeometryType
ARRAY ArrayType scala.collection.Seq ArrayType(typElementu [, zawieraNull]). (2)
MAP MapType scala.collection.Map MapType(typKlucza, typWartości [, wartośćZawieraNull]). (2)
STRUCT StructType org.apache.spark.sql.Row StructType(fields). Pola to sekwencja StructField. 4.
StructField Typ wartości typu danych tego pola (na przykład Int dla pola struktury z typem danych IntegerType) StructField(name, dataType [, nullable]). 4
VARIANT VariantType org.apache.spark.unsafe.type.VariantVal VariantType
OBJECT Nie jest obsługiwany Niewspierane Niewspierane

Java

Typy danych Spark SQL są definiowane w pakiecie org.apache.spark.sql.types. Aby uzyskać dostęp do typu danych lub utworzyć go, użyj metod fabrycznych podanych w pliku org.apache.spark.sql.types.DataTypes.

Typ SQL Typ danych Typ wartości Interfejs API umożliwiający uzyskiwanie dostępu do typu danych lub tworzenie go
TINYINT ByteType bajt lub bajt DataTypes.ByteType
SMALLINT ShortType krótki lub Krótki DataTypes.ShortType
INT IntegerType int lub liczba całkowita DataTypes.IntegerType
BIGINT LongType długi lub Long DataTypes.LongType
FLOAT FloatType float lub Float DataTypes.FloatType
DOUBLE DoubleType podwójna lub Double DataTypes.DoubleType
DECIMAL(p,s) DecimalType java.math.BigDecimal DataTypes.createDecimalType() DataTypes.createDecimalType(precyzja, skala).
STRING StringType String DataTypes.StringType
BINARY BinaryType byte[] DataTypes.BinaryType
BOOLEAN BooleanType boolean lub 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
interwał miesiąca roku YearMonthIntervalType java.time.Period YearMonthIntervalType (3)
Interwał dnia DayTimeIntervalType java.time.Duration DayTimeIntervalType (3)
GEOGRAPHY (srid) TypGeograficzny org.apache.spark.unsafe.type.GeographyVal TypGeografii
GEOMETRY(srid) GeometryType org.apache.spark.niebezpieczne.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). pola to lista lub tablica obiektu StructField. 4
StructField Typ wartości typu danych tego pola (na przykład int dla pola StructField z typem danych IntegerType) DataTypes.createStructField(name, dataType, nullable) 4
VARIANT VariantType org.apache.spark.unsafe.type.VariantVal VariantType
OBJECT Nie jest obsługiwany Niewspierane Niewspierane

Python

Typy danych Spark SQL są definiowane w pakiecie pyspark.sql.types. Uzyskujesz do nich dostęp, importując pakiet:

from pyspark.sql.types import *
Typ SQL Typ danych Typ wartości Interfejs API umożliwiający uzyskiwanie dostępu do typu danych lub tworzenie go
TINYINT ByteType int lub long. (1) ByteType()
SMALLINT ShortType int lub long. (1) ShortType()
INT IntegerType int lub long IntegerType()
BIGINT LongType długość (1) LongType()
FLOAT FloatType float (1) FloatType()
DOUBLE DoubleType float DoubleType()
DECIMAL(p,s) DecimalType decimal.Decimal DecimalType()
STRING StringType ciąg 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()
interwał miesiąca roku YearMonthIntervalType Niewspierane Niewspierane
Interwał dnia DayTimeIntervalType datetime.timedelta DayTimeIntervalType (3)
GEOGRAPHY (srid) TypGeografii GeographyVal GeographyType()
GEOMETRY(srid) GeometryType GeometryVal GeometryType()
ARRAY ArrayType lista, tupla lub tablica ArrayType(elementType, [containsNull]). (2)
MAP MapType dict MapType(keyType, valueType, [valueContainsNull]). (2)
STRUCT StructType lista lub krotka StructType(fields). pole jest sekwencją StructField. (4)
StructField Typ wartości typu danych tego pola (na przykład Int dla pola StructField z typem danych IntegerType) StructField(name, dataType, [nullable]). (4)
VARIANT VariantType VariantVal VariantType()
OBJECT Nie jest obsługiwany Niewspierane Niewspierane

R

Typ SQL Typ danych Typ wartości Interfejs API umożliwiający uzyskiwanie dostępu do typu danych lub tworzenie go
TINYINT ByteType Liczba całkowita (1) 'byte'
SMALLINT ShortType Liczba całkowita (1) 'short'
INT IntegerType liczba całkowita 'integer'
BIGINT LongType Liczba całkowita (1) 'long'
FLOAT FloatType numeryczne (1) 'float'
DOUBLE DoubleType numeric 'double'
DECIMAL(p,s) DecimalType Niewspierane Niewspierane
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'
interwał miesiąca roku YearMonthIntervalType Niewspierane Niewspierane
Interwał dnia DayTimeIntervalType Niewspierane Niewspierane
GEOGRAPHY (srid) Niewspierane Niewspierane Niewspierane
GEOMETRY(srid) Niewspierane Niewspierane Niewspierane
ARRAY ArrayType wektor lub lista list(type='array', elementType=elementType, containsNull=[containsNull]). (2)
MAP MapType środowisko list(type='map', keyType=keyType, valueType=valueType, valueContainsNull=[valueContainsNull]). (2)
STRUCT StructType nazwana lista list(type='struct', fields=fields). Pola to sekwencja StructField. (4)
StructField Typ wartości typu danych tego pola (na przykład liczba całkowita dla pola StructField z typem danych IntegerType) list(name=name, type=dataType, nullable=[nullable]). (4)
VARIANT Nie jest obsługiwany Niewspierane Niewspierane
OBJECT Nie jest obsługiwany Niewspierane Niewspierane

(1) Liczby są konwertowane na domenę w czasie działania programu. Upewnij się, że liczby znajdują się w zakresie.

(2) Opcjonalna wartość domyślna to TRUE.

(3) Typy interwałów

  • YearMonthIntervalType([startField,] endField): Reprezentuje interwał rok-miesiąc, który składa się z ciągłego podzbioru następujących pól:

    startField jest polem najdalej po lewej stronie i endField jest najbardziej prawym polem typu. Prawidłowe wartości startField oraz endField to 0(MONTH) i 1(YEAR).

  • DayTimeIntervalType([startField,] endField): Reprezentuje interwał dnia składający się z ciągłego podzestawu następujących pól:

    startField jest polem najdalej po lewej stronie i endField jest najbardziej prawym polem typu. Prawidłowe wartości dla startField i endField to 0(DAY), 1(HOUR), 2(MINUTE), 3(SECOND).

(4)StructType

  • StructType(fields) Reprezentuje wartości ze strukturą opisaną przez sekwencję, listę lub tablicę StructField(pól). Dwa pola o tej samej nazwie są niedozwolone.
  • StructField(name, dataType, nullable) Reprezentuje pole w obiekcie StructType. Nazwa pola jest wskazywana przez name. Typ danych pola jest wskazywany przez typ danych. nullable wskazuje, czy wartości tych pól mogą mieć null wartości. Jest to opcja domyślna.