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.
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 rok, miesiąc i dzień bez strefy czasowej.
DZIESIĘTNE (p, s) Reprezentuje liczby o maksymalnej precyzji 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 ze znakiem 4 bajtów.
Interwał interwałuQualifier Reprezentuje interwały czasu w skali sekund lub miesięcy.
VOID Reprezentuje nietypowaną wartość NULL.
SMALLINT Reprezentuje liczby całkowite ze znakiem 2 bajtów.
CIĄG 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 <elementType> 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.

Ważne

Usługa Delta Lake nie obsługuje typów i INTERVAL nie obsługuje VOID ich.

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
FLOAT FloatType Liczba zmiennoprzecinkowa FloatType
PODWÓJNE DoubleType Liczba rzeczywista DoubleType
DZIESIĘTNE (p, s) Typ dziesiętny java.math.BigDecimal Typ dziesiętny
CIĄG StringType String StringType
BINARNYM BinaryType Tablica[bajt] BinaryType
BOOLEAN 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)
TABLICY ArrayType 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 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

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
FLOAT FloatType zmiennoprzecinkowy lub zmiennoprzecinkowy DataTypes.FloatType
PODWÓJNE DoubleType podwójna lub podwójna DataTypes.DoubleType
DZIESIĘTNE (p, s) Typ dziesiętny java.math.BigDecimal DataTypes.createDecimalType() DataTypes.createDecimalType(precyzja, skala).
CIĄG StringType String DataTypes.StringType
BINARNYM BinaryType byte[] DataTypes.BinaryType
BOOLEAN 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)
TABLICY ArrayType ava.util.List DataTypes.createArrayType(elementType [, containsNull]).(2)
MAPĘ 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

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()
FLOAT FloatType zmiennoprzecinkowy (1) FloatType()
PODWÓJNE DoubleType liczba zmiennoprzecinkowa DoubleType()
DZIESIĘTNE (p, s) Typ dziesiętny Dziesiętnych. Dziesiętnych DecimalType()
CIĄG StringType string StringType()
BINARNYM BinaryType Bytearray BinaryType()
BOOLEAN 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)
TABLICY ArrayType lista, krotka lub tablica ArrayType(elementType, [containsNull]).(2)
MAPĘ 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)

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"
FLOAT FloatType numeryczne (1) "float"
PODWÓJNE DoubleType numeryczne "double"
DZIESIĘTNE (p, s) Typ dziesiętny Nieobsługiwane Nieobsługiwane
CIĄG StringType znak "ciąg"
BINARNYM BinaryType raw "binary"
BOOLEAN Typ logiczny Logiczne "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
TABLICY ArrayType wektor lub lista list(type='array', elementType=elementType, containsNull=[containsNull]).(2)
MAPĘ 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)

(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 startFieldendField 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 startFieldendField 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.