Typy danych
Dotyczy: Databricks SQL
Databricks Runtime
Aby uzyskać informacje na temat 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. |
BINARNYM | Reprezentuje wartości sekwencji bajtów. |
BOOLEAN | Reprezentuje wartości logiczne. |
DATA | Reprezentuje wartości składające się z wartości pól roku, miesiąca i dnia bez strefy czasowej. |
DZIESIĘTNE (p,s) | Reprezentuje liczby o maksymalnej dokładności p i stałej skali s . |
PODWÓJNE | Reprezentuje 8-bajtowe liczby zmiennoprzecinkowe o podwójnej precyzji. |
FLOAT | Reprezentuje 4-bajtowe liczby zmiennoprzecinkowe o pojedynczej precyzji. |
INT | Reprezentuje liczby całkowite z podpisem 4 bajtów. |
Interwał interwałuQualifier | Reprezentuje interwały czasu w skali sekund lub miesięcy. |
VOID | Reprezentuje nietypowy null. |
SMALLINT | Reprezentuje liczby całkowite z podpisem 2 bajtów. |
CIĄG | Reprezentuje wartości ciągów znaków. |
SYGNATURY CZASOWEJ | Reprezentuje wartości składające się z wartości pól roku, miesiąca, dnia, godziny, minuty i sekundy z lokalną strefą czasową sesji. |
TIMESTAMP_NTZ | Reprezentuje wartości składające się z wartości pól roku, miesiąca, dnia, godziny, minuty i sekundy. Wszystkie operacje są wykonywane bez uwzględniania żadnej strefy czasowej. |
TINYINT | Reprezentuje liczby całkowite z podpisem 1 bajtów. |
TABLICY | 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ść. |
STRUCT < [fieldName: fieldType [NOT NULL][COMMENT str][, ...]] > | Reprezentuje wartości ze strukturą opisaną przez sekwencję pól. |
Klasyfikacja typów danych
Typy danych są pogrupowane w następujące klasy:
- Typy liczb całkowitych reprezentują liczby całkowite:
- Dokładne typy liczbowe reprezentują liczby base-10:
- Binarne typy zmiennoprzecinkowe używają wykładników i reprezentacji binarnej w celu 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 utrzymywanie wartości jednotonowych:
- Typy złożone składają się z wielu składników złożonych lub prostych typów:
Mapowania języka
Dotyczy: 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 | Bajtów | ByteType |
SMALLINT | ShortType | Krótki | ShortType |
INT | IntegerType | Int | IntegerType |
BIGINT | LongType | Długi | LongType |
FLOAT | FloatType | Float | FloatType |
PODWÓJNE | DoubleType | Podwójne | DoubleType |
LICZBA DZIESIĘTNA(p,s) | Typ dziesiętny | java.math.BigDecimal | Typ dziesiętny |
CIĄG | StringType | Ciąg | StringType |
BINARNYM | Typ binarny | Tablica[Byte] | Typ binarny |
BOOLEAN | Wartość logiczna | Boolean | Wartość logiczna |
SYGNATURY CZASOWEJ | TimestampType | java.sql.Timestamp | TimestampType |
TIMESTAMP_NTZ | TimestampNTZType | java.time.LocalDateTime | TimestampNTZType |
DATA | Typ daty | java.sql.Date | Typ daty |
interwał miesiąca | YearMonthIntervalType | java.time.Period | YearMonthIntervalType (3) |
interwał dnia | DayTimeIntervalType | java.time.Duration | DayTimeIntervalType (3) |
TABLICY | Typ tablicy | scala.collection.Seq | ArrayType(elementType [, containsNull]). (2) |
MAPĘ | Typ mapy | scala.collection.Map | MapType(keyType, valueType [, valueContainsNull]). (2) |
STRUCT | Typ struktury | org.apache.spark.sql.Row | StructType(fields). fields jest Seq of 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 |
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 | Typ całkowitoliczniowy | int lub liczba całkowita | DataTypes.IntegerType |
BIGINT | LongType | długie lub długie | DataTypes.LongType |
FLOAT | FloatType | zmiennoprzecinkowy lub zmiennoprzecinkowy | DataTypes.FloatType |
PODWÓJNE | DoubleType | podwójna lub podwójna | DataTypes.DoubleType |
LICZBA DZIESIĘTNA(p,s) | Typ dziesiętny | java.math.BigDecimal | DataTypes.createDecimalType() DataTypes.createDecimalType(precyzja, skala). |
CIĄG | StringType | Ciąg | DataTypes.StringType |
BINARNYM | BinaryType | bajt[] | DataTypes.BinaryType |
BOOLEAN | Typ logiczny | wartość logiczna lub wartość logiczna | DataTypes.BooleanType |
SYGNATURY CZASOWEJ | TimestampType | java.sql.Timestamp | DataTypes.TimestampType |
TIMESTAMP_NTZ | TimestampNTZType | java.time.LocalDateTime | DataTypes.TimestampNTZType |
DATA | DateType | java.sql.Date | DataTypes.DateType |
interwał miesiąca | YearMonthIntervalType | java.time.Period | YearMonthIntervalType (3) |
interwał dnia | DayTimeIntervalType | java.time.Duration | DayTimeIntervalType (3) |
TABLICY | ArrayType | ava.util.List | DataTypes.createArrayType(elementType [, containsNull]). (2) |
MAPĘ | MapType | 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 obiektu StructField z typem danych IntegerType) | DataTypes.createStructField(name, dataType, nullable) 4 |
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ługie (1) | LongType() |
FLOAT | FloatType | float (1) | FloatType() |
PODWÓJNE | DoubleType | Float | DoubleType() |
DZIESIĘTNE (p,s) | DecimalType | Dziesiętnych. Dziesiętnych | DecimalType() |
CIĄG | StringType | Ciąg | StringType() |
BINARNYM | BinaryType | Bytearray | BinaryType() |
BOOLEAN | Typ logiczny | Bool | Wartość logiczna() |
SYGNATURY CZASOWEJ | TimestampType | datetime.datetime | TimestampType() |
TIMESTAMP_NTZ | TimestampNTZType | datetime.datetime | TimestampNTZType() |
DATA | DateType | datetime.date | DateType() |
interwał miesiąca | YearMonthIntervalType | Nieobsługiwane | Nieobsługiwane |
interwał dnia | DayTimeIntervalType | datetime.timedelta | DayTimeIntervalType (3) |
TABLICY | ArrayType | lista, krotka lub tablica | ArrayType(elementType, [containsNull]). (2) |
MAPĘ | MapType | 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 struktury z typem danych IntegerType) | StructField(name, dataType, [nullable]). (4) |
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) | "bajt" |
SMALLINT | ShortType | liczba całkowita (1) | "krótki" |
INT | IntegerType | Liczba całkowita | "Liczba całkowita" |
BIGINT | LongType | liczba całkowita (1) | "long" |
FLOAT | FloatType | numeryczne (1) | "float" |
PODWÓJNE | DoubleType | Liczbowe | "double" |
DZIESIĘTNE (p,s) | DecimalType | Nieobsługiwane | Nieobsługiwane |
CIĄG | StringType | Znaków | "ciąg" |
BINARNYM | BinaryType | Raw | "binary" |
BOOLEAN | Typ logiczny | Logiczne | "bool" |
SYGNATURY CZASOWEJ | TimestampType | POSIXct | "sygnatura czasowa" |
TIMESTAMP_NTZ | TimestampNTZType | datetime.datetime | TimestampNTZType() |
DATA | DateType | Data | "date" |
interwał miesiąca | YearMonthIntervalType | Nieobsługiwane | Nieobsługiwane |
interwał dnia | DayTimeIntervalType | Nieobsługiwane | Nieobsługiwane |
TABLICY | Typ tablicy | wektor lub lista | list(type='array', elementType=elementType, containsNull=[containsNull]). (2) |
MAPĘ | Typ mapy | Środowiska | list(type='map', keyType=keyType, valueType=valueType, valueContainsNull=[valueContainsNull]). (2) |
STRUCT | Typ struktury | nazwana lista | list(type='struct', fields=fields). fields jest Seq of StructField. (4) |
StructField | Typ wartości typu danych tego pola (na przykład liczba całkowita dla pola struktury z typem danych IntegerType) | list(name=name, type=dataType, nullable=[nullable]). (4) |
(1) Liczby są konwertowane na domenę w czasie wykonywania. Upewnij się, że liczby znajdują się w zakresie.
(2) Wartość opcjonalna jest domyślnie ustawiona na 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
to najbardziej lewe pole iendField
jest najbardziej prawym polem typu. Prawidłowe wartościstartField
iendField
to0(MONTH)
i1(YEAR)
.DayTimeIntervalType([startField,] endField)
: reprezentuje interwał dzienny składający się z ciągłego podzbioru następujących pól:startField
to najbardziej lewe pole iendField
jest najbardziej prawym polem typu. Prawidłowe wartościstartField
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 wartość domyślna.