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 8-bajtowe liczby całkowite ze znakiem.
DWÓJKOWY Reprezentuje wartości sekwencji bajtów.
BOOLOWA 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.
DECIMAL(p, s) Reprezentuje liczby o maksymalnej precyzji p i stałej skali s.
PODWÓJNY Reprezentuje 8-bajtowe liczby zmiennoprzecinkowe o podwójnej precyzji.
PŁYWAĆ 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.
NIEWAŻNY Reprezentuje nietypowaną wartość NULL.
SMALLINT Reprezentuje 2-bajtowe liczby całkowite ze znakiem.
STRUNA Reprezentuje wartości ciągów znaków.
ZNACZNIK CZASU 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.
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.
OBIEKT Reprezentuje wartości w obiekcie VARIANT ze strukturą opisaną przez zestaw pól.

Ważne

Delta Lake nie obsługuje typu VOID.

Klasyfikacja typów danych

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

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

Mapowania języków

Dotyczy:zaznacz pole wyboru oznaczone jako tak Databricks Runtime

Skala

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 Bajt Typ bajtu
SMALLINT ShortType Krótki ShortType
INT Typ liczby całkowitej Int Typ liczby całkowitej
BIGINT LongType Długi LongType
PŁYWAĆ FloatType Liczba zmiennoprzecinkowa FloatType
PODWÓJNY PodwójnyTyp Podwójna precyzja PodwójnyTyp
DECIMAL(p, s) Typ dziesiętny java.math.BigDecimal Typ dziesiętny
STRUNA TypCiągu Sznurek TypCiągu
DWÓJKOWY Typ binarny Tablica[bajt] Typ binarny
BOOLOWA Typ boolowski Typ Boolean Typ boolowski
ZNACZNIK CZASU Typ znacznika czasu java.sql.Sygnatura czasowa Typ znacznika czasu
TIMESTAMP_NTZ TypZnacznikCzasuNTZ java.time.LocalDateTime TypZnacznikCzasuNTZ
DATA Typ daty java.sql.Date Typ daty
interwał miesiąca roku Typ Przedziału Rok-Miesiąc java.time.Period TypPrzedziałuRokMiesiąc (3)
Interwał dnia Typ Interwału Dzień-Czas java.time.Duration TypInterwałuDnia (3)
TABLICA ArrayType scala.collection.Seq ArrayType(typElementu [, zawieraNull]). (2)
MAPA Typ mapy scala.collection.Map MapType(typKlucza, typWartości [, wartośćZawieraNull]). (2)
STRUKTURA Typ struktury org.apache.spark.sql.Row StructType(fields). Pola to sekwencja 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 Typ wariantu org.apache.spark.niebezpieczne.type.VariantVal Typ wariantu
OBIEKT Nieobsługiwane Nieobsługiwane Nieobsługiwane

Jawa

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 (typ bajtowy)
SMALLINT ShortType krótki lub Krótki DataTypes.ShortType (typ danych niespełniający pełnego zakresu)
INT Typ liczby całkowitej int lub liczba całkowita DataTypes.IntegerType
BIGINT LongType długi lub Long DataTypes.LongType
PŁYWAĆ FloatType float lub Float DataTypes.FloatType
PODWÓJNY PodwójnyTyp podwójna lub Double DataTypes.DoubleType
DECIMAL(p, s) Typ dziesiętny java.math.BigDecimal DataTypes.createDecimalType() DataTypes.createDecimalType(precyzja, skala).
STRUNA TypCiągu Sznurek DataTypes.StringType
DWÓJKOWY Typ binarny byte[] DataTypes.BinaryType
BOOLOWA Typ boolowski boolean lub Boolean DataTypes.BooleanType
ZNACZNIK CZASU Typ znacznika czasu java.sql.Sygnatura czasowa DataTypes.TimestampType
TIMESTAMP_NTZ TypZnacznikCzasuNTZ java.time.LocalDateTime DataTypes.TimestampNTZType
DATA Typ daty java.sql.Date DataTypes.DateTyp
interwał miesiąca roku Typ Przedziału Rok-Miesiąc java.time.Period TypPrzedziałuRokMiesiąc (3)
Interwał dnia Typ Interwału Dzień-Czas java.time.Duration TypInterwałuDnia (3)
TABLICA ArrayType ava.util.List DataTypes.createArrayType(elementType [, containsNull]). (2)
MAPA Typ mapy java.util.Map DataTypes.createMapType(keyType, valueType [, valueContainsNull]). (2)
STRUKTURA 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 Typ wariantu org.apache.spark.niebezpieczne.type.VariantVal Typ wariantu
OBIEKT Nieobsługiwane Nieobsługiwane Nieobsługiwane

Pyton

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()
PŁYWAĆ FloatType zmiennoprzecinkowy (1) FloatType()
PODWÓJNY PodwójnyTyp liczba zmiennoprzecinkowa DoubleType()
DECIMAL(p, s) Typ dziesiętny dziesiętny. Dziesiętny DecimalType()
STRUNA TypCiągu ciąg znaków StringType()
DWÓJKOWY Typ binarny bytearray (tablica bajtów) BinaryType()
BOOLOWA Typ boolowski Bool Typ logiczny()
ZNACZNIK CZASU Typ znacznika czasu datetime.datetime TimestampType()
TIMESTAMP_NTZ TypZnacznikCzasuNTZ datetime.datetime TimestampNTZType()
DATA Typ daty datetime.date DateType()
interwał miesiąca roku Typ Przedziału Rok-Miesiąc Nieobsługiwane Nieobsługiwane
Interwał dnia Typ Interwału Dzień-Czas datetime.timedelta TypInterwałuDnia (3)
TABLICA ArrayType lista, tupla lub tablica ArrayType(typElementu, [zawieraNull]).(2)
MAPA Typ mapy słownik `MapType(typKlucza, typWartości, [wartośćZawieraNull]).(2)`
STRUKTURA Typ struktury lista lub krotka StructType(fields). pole jest sekwencją 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 Typ wariantu VariantVal VariantType()
OBIEKT Nieobsługiwane 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) krótki
INT Typ liczby całkowitej liczba całkowita "Liczba całkowita"
BIGINT LongType Liczba całkowita (1) "long"
PŁYWAĆ FloatType numeryczny (1) "float"
PODWÓJNY PodwójnyTyp numeryczny podwójny
DECIMAL(p, s) Typ dziesiętny Nieobsługiwane Nieobsługiwane
STRUNA TypCiągu znak "ciąg"
DWÓJKOWY Typ binarny surowy "binary"
BOOLOWA Typ boolowski logiczny "bool"
ZNACZNIK CZASU Typ znacznika czasu POSIXct sygnatura czasowa
TIMESTAMP_NTZ TypZnacznikCzasuNTZ datetime.datetime TimestampNTZType()
DATA Typ daty Data "date"
interwał miesiąca roku Typ Przedziału Rok-Miesiąc Nieobsługiwane Nieobsługiwane
Interwał dnia Typ Interwału Dzień-Czas Nieobsługiwane Nieobsługiwane
TABLICA ArrayType wektor lub lista list(type='array', elementType=elementType, containsNull=[containsNull]). (2)
MAPA Typ mapy Środowisko list(type='map', keyType=keyType, valueType=valueType, valueContainsNull=[valueContainsNull]). (2)
STRUKTURA Typ struktury nazwana lista list(type='struct', fields=fields). Pola to sekwencja 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ługiwane Nieobsługiwane Nieobsługiwane
OBIEKT Nieobsługiwane Nieobsługiwane Nieobsługiwane

(1) Liczby są konwertowane do domeny 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ł 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.