Udostępnij za pośrednictwem


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 opis
BIGINT Reprezentuje liczby całkowite ze znakiem 8 bajtów.
DWÓJKOWY Reprezentuje wartości sekwencji bajtów.
BOOLOWSKI Reprezentuje wartości logiczne.
DATA Reprezentuje wartości składające się z wartości pól rok, miesiąc i dzień bez strefy czasowej.
DZIESIĘTNE (p, s) Reprezentuje liczby o maksymalnej precyzji p i stałej skali s.
PODWÓJNY Reprezentuje 8-bajtowe liczby zmiennoprzecinkowe o podwójnej precyzji.
SPŁAWIK Reprezentuje 4-bajtowe liczby zmiennoprzecinkowe o pojedynczej precyzji.
INT Reprezentuje liczby całkowite ze znakiem 4 bajtów.
Interwał interwałuQualifier Reprezentuje interwały czasu w skali sekund lub miesięcy.
NIEWAŻNY Reprezentuje nietypowaną wartość NULL.
SMALLINT Reprezentuje liczby całkowite ze znakiem 2 bajtów.
STRUNA 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 liczby całkowite ze znakiem 1 bajtów.
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.
WARIANT Reprezentuje dane częściowo ustrukturyzowane.
SPRZECIWIAĆ SIĘ Reprezentuje wartości w obiekcie VARIANT ze strukturą opisaną przez zestaw pól.

Ważne

Usługa Delta Lake nie obsługuje VOID typu .

Klasyfikacja typów danych

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

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 Typ bajtu Byte Typ bajtu
SMALLINT ShortType Krótkie ShortType
INT Typ liczby całkowitej Int Typ liczby całkowitej
BIGINT LongType Długi LongType
SPŁAWIK FloatType Liczba zmiennoprzecinkowa FloatType
PODWÓJNY DoubleType Liczba rzeczywista DoubleType
DZIESIĘTNE (p, s) Typ dziesiętny java.math.BigDecimal Typ dziesiętny
STRUNA StringType String StringType
DWÓJKOWY BinaryType Tablica[bajt] BinaryType
BOOLOWSKI Typ logiczny Wartość logiczna Typ logiczny
TIMESTAMP TimestampType java.sql.Sygnatura czasowa TimestampType
TIMESTAMP_NTZ TimestampNTZType java.time.LocalDateTime TimestampNTZType
DATA Typ daty java.sql.Date Typ daty
interwał miesiąca roku YearMonthIntervalType java.time.Period YearMonthIntervalType (3)
Interwał dnia DayTimeIntervalType java.time.Duration DayTimeIntervalType (3)
TABLICA ArrayType scala.collection.Seq ArrayType(elementType [, containsNull]). (2)
MAPA Typ mapy scala.collection.Map MapType(keyType, valueType [, valueContainsNull]). (2)
STRUCT Typ struktury org.apache.spark.sql.Row StructType(fields). fields to Seq of StructField. 4.
Pole struktury Typ wartości typu danych tego pola (na przykład Int dla pola struktury z typem danych IntegerType) StructField(name, dataType [, nullable]). 4
WARIANT VariantType org.apache.spark.niebezpieczne.type.VariantVal VariantType
SPRZECIWIAĆ SIĘ Nieobsługiwany Nieobsługiwane Nieobsługiwane

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 Typ bajtu bajt lub bajt DataTypes.ByteType
SMALLINT ShortType krótki lub krótki DataTypes.ShortType
INT Typ liczby całkowitej int lub liczba całkowita DataTypes.IntegerType
BIGINT LongType długi lub długi DataTypes.LongType
SPŁAWIK FloatType zmiennoprzecinkowy lub zmiennoprzecinkowy DataTypes.FloatType
PODWÓJNY DoubleType podwójna lub podwójna DataTypes.DoubleType
DZIESIĘTNE (p, s) Typ dziesiętny java.math.BigDecimal DataTypes.createDecimalType() DataTypes.createDecimalType(precyzja, skala).
STRUNA StringType String DataTypes.StringType
DWÓJKOWY BinaryType byte[] DataTypes.BinaryType
BOOLOWSKI Typ logiczny wartość logiczna lub wartość logiczna DataTypes.BooleanType
TIMESTAMP TimestampType java.sql.Sygnatura czasowa DataTypes.TimestampType
TIMESTAMP_NTZ TimestampNTZType java.time.LocalDateTime DataTypes.TimestampNTZType
DATA Typ daty java.sql.Date DataTypes.DateType
interwał miesiąca roku YearMonthIntervalType java.time.Period YearMonthIntervalType (3)
Interwał dnia DayTimeIntervalType java.time.Duration DayTimeIntervalType (3)
TABLICA ArrayType ava.util.List DataTypes.createArrayType(elementType [, containsNull]).(2)
MAPA Typ mapy java.util.Map DataTypes.createMapType(keyType, valueType [, valueContainsNull]).(2)
STRUCT Typ struktury org.apache.spark.sql.Row DataTypes.createStructType(fields). pola to lista lub tablica obiektu StructField. 4
Pole struktury Typ wartości typu danych tego pola (na przykład int dla pola StructField z typem danych IntegerType) DataTypes.createStructField(name, dataType, nullable) 4
WARIANT VariantType org.apache.spark.niebezpieczne.type.VariantVal VariantType
SPRZECIWIAĆ SIĘ Nieobsługiwany Nieobsługiwane Nieobsługiwane

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 Typ bajtu int lub long. (1) ByteType()
SMALLINT ShortType int lub long. (1) ShortType()
INT Typ liczby całkowitej int lub long IntegerType()
BIGINT LongType długość (1) LongType()
SPŁAWIK FloatType zmiennoprzecinkowy (1) FloatType()
PODWÓJNY DoubleType liczba zmiennoprzecinkowa DoubleType()
DZIESIĘTNE (p, s) Typ dziesiętny dziesiętny. Dziesiętny DecimalType()
STRUNA StringType string StringType()
DWÓJKOWY BinaryType bytearray BinaryType()
BOOLOWSKI Typ logiczny bool Wartość logiczna()
TIMESTAMP TimestampType datetime.datetime TimestampType()
TIMESTAMP_NTZ TimestampNTZType datetime.datetime TimestampNTZType()
DATA Typ daty datetime.date DateType()
interwał miesiąca roku YearMonthIntervalType Nieobsługiwane Nieobsługiwane
Interwał dnia DayTimeIntervalType datetime.timedelta DayTimeIntervalType (3)
TABLICA ArrayType lista, krotka lub tablica ArrayType(elementType, [containsNull]).(2)
MAPA Typ mapy Dict MapType(keyType, valueType, [valueContainsNull]).(2)
STRUCT Typ struktury lista lub krotka StructType(fields). pole jest seq obiektu StructField. (4)
Pole struktury Typ wartości typu danych tego pola (na przykład Int dla pola StructField z typem danych IntegerType) StructField(name, dataType, [nullable]).(4)
WARIANT VariantType VariantVal VariantType()
SPRZECIWIAĆ SIĘ Nieobsługiwany Nieobsługiwane Nieobsługiwane

R

Typ SQL Typ danych Typ wartości Interfejs API umożliwiający uzyskiwanie dostępu do typu danych lub tworzenie go
TINYINT Typ bajtu Liczba całkowita (1) "bajt"
SMALLINT ShortType Liczba całkowita (1) "short"
INT Typ liczby całkowitej integer "Liczba całkowita"
BIGINT LongType Liczba całkowita (1) "long"
SPŁAWIK FloatType numeryczne (1) "float"
PODWÓJNY DoubleType numeryczne "double"
DZIESIĘTNE (p, s) Typ dziesiętny Nieobsługiwane Nieobsługiwane
STRUNA StringType znak "ciąg"
DWÓJKOWY BinaryType raw "binary"
BOOLOWSKI Typ logiczny logiczny "bool"
TIMESTAMP TimestampType POSIXct "sygnatura czasowa"
TIMESTAMP_NTZ TimestampNTZType datetime.datetime TimestampNTZType()
DATA Typ daty Data "date"
interwał miesiąca roku YearMonthIntervalType Nieobsługiwane Nieobsługiwane
Interwał dnia DayTimeIntervalType Nieobsługiwane Nieobsługiwane
TABLICA ArrayType wektor lub lista list(type='array', elementType=elementType, containsNull=[containsNull]).(2)
MAPA Typ mapy Środowisko usługi list(type='map', keyType=keyType, valueType=valueType, valueContainsNull=[valueContainsNull]).(2)
STRUCT Typ struktury nazwana lista list(type='struct', fields=fields). fields to Seq of StructField. (4)
Pole struktury 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)
WARIANT Nieobsługiwany Nieobsługiwane Nieobsługiwane
SPRZECIWIAĆ SIĘ Nieobsługiwany Nieobsługiwane Nieobsługiwane

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

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

(3) Typy interwałów

  • YearMonthIntervalType([startField,] endField): Reprezentuje interwał miesiąca, który składa 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 i startField 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 i startField 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.

Powiązane artykuły