Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy: Databricks SQL
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:
- Dokładne typy liczbowe reprezentują liczby base-10:
- Binarne typy zmiennoprzecinkowe używają wykładników i reprezentacji binarnej do pokrycia dużego zakresu liczb:
- Typy liczbowe reprezentują wszystkie typy danych liczbowych:
- Typy daty i godziny reprezentują składniki daty i godziny:
- Proste typy są typami zdefiniowanymi przez przechowywanie pojedynczych wartości:
- Złożone typy składają się z wielu składników złożonych lub prostych typów:
Mapowania języków
Dotyczy: 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 iendField
jest najbardziej prawym polem typu. Prawidłowe wartościstartField
orazendField
to0(MONTH)
i1(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 iendField
jest najbardziej prawym polem typu. Prawidłowe wartości dlastartField
iendField
to0(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 obiekcieStructType
. Nazwa pola jest wskazywana przezname
. 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.