Typy danych

Obsługiwane typy danych

Środowisko Databricks Runtime SQL i ramki danych obsługują 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.
DATE 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.
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.
MAPkeyType,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:

Mapowania języka

Scala

Typy danych platformy 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 Byte ByteType
SMALLINT ShortType Krótki ShortType
INT IntegerType int IntegerType
BIGINT LongType Długi LongType
FLOAT FloatType Float FloatType
PODWÓJNE DoubleType Double DoubleType
DZIESIĘTNE (p,s) DecimalType java.math.BigDecimal DecimalType
CIĄG StringType Ciąg StringType
BINARNYM BinaryType Tablica[Bajt] BinaryType
BOOLEAN Typ logiczny Wartość logiczna Typ logiczny
SYGNATURY CZASOWEJ TimestampType java.sql.Timestamp TimestampType
DATE DateType java.sql.Date DateType
interwał miesiąca YearMonthIntervalType java.time.Period YearMonthIntervalType (3)
interwał dnia DayTimeIntervalType java.time.Duration DayTimeIntervalType (3)
TABLICY ArrayType scala.collection.Seq ArrayType(elementType [, containsNull]). (2)
MAPĘ MapType scala.collection.Map MapType(keyType, valueType [, valueContainsNull]). (2)
STRUCT Typ struktury org.apache.spark.sql.Row StructType(fields). pola to 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

Java

Typy danych platformy 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 IntegerType int lub liczba całkowita DataTypes.IntegerType
BIGINT LongType długi lub długi DataTypes.LongType
FLOAT FloatType float lub float DataTypes.FloatType
PODWÓJNE DoubleType podwójne lub podwójne DataTypes.DoubleType
DZIESIĘTNE (p,s) DecimalType 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
DATE 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 platformy 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()
DATE 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 numeryczne "double"
DZIESIĘTNE (p,s) DecimalType Nieobsługiwane Nieobsługiwane
CIĄG StringType Znaków "ciąg"
BINARNYM BinaryType Raw "binary"
BOOLEAN Typ logiczny wartość_logiczna "bool"
SYGNATURY CZASOWEJ TimestampType POSIXct "sygnatura czasowa"
DATE DateType Data "date"
interwał miesiąca 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Ę MapType środowisko list(type='map', keyType=keyType, valueType=valueType, valueContainsNull=[valueContainsNull]). (2)
STRUCT Typ struktury nazwana lista list(type='struct', fields=fields). pola to Seq obiektu StructField. (4)
Pole struktury Typ wartości typu danych tego pola (na przykład liczba całkowita 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 jest najbardziej lewym polem i endField jest najbardziej prawym polem typu. Prawidłowe wartości startField i endField0(MONTH) i 1(YEAR).

  • DayTimeIntervalType([startField,] endField): Reprezentuje interwał dnia, który składa się z ciągłego podzestawu następujących pól:

    startField jest najbardziej lewym polem i endField jest najbardziej prawym polem typu. Prawidłowe wartości 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.