Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Область применения:
Databricks SQL
Databricks Runtime
Для получения информации о правилах разрешения конфликтов между типами данных, см. правила SQL о типах данных.
Поддерживаемые типы данных
Azure Databricks поддерживает следующие типы данных:
| Тип данных | Description |
|---|---|
| BIGINT | Представляет 8-байтовые целые числа со знаком. |
| BINARY | Представляет значения последовательности байтов. |
| BOOLEAN | Представляет логические значения. |
| DATE | Значения, содержащие значения полей «год», «месяц» и «день», без часового пояса. |
| DECIMAL(p,s) | Представляет числа с максимальной точностью p и фиксированной шкалой s. |
| DOUBLE | 8-байтовые числа двойной точности с плавающей точкой. |
| FLOAT | 4-байтовые числа одиночной точности с плавающей точкой. |
| INT | Представляет 4-байтовые целые числа со знаком. |
| Интервал INTERVALQualifier | Представляет интервалы времени либо в секундах, либо в месяцах. |
| VOID | Нетипизированное значение NULL. |
| SMALLINT | Представляет 2-байтовые целые числа со знаком. |
| STRING | Представляет значения символьных строк. |
| TIMESTAMP | Значения, содержащие значения полей "год", "месяц", "день", "час", "минута" и "секунда", используя локальный часовой пояс сеанса. |
| TIMESTAMP_NTZ | Представляет значения полей года, месяца, дня, часа, минуты и секунды. Все операции выполняются без учета часового пояса. |
| TINYINT | Представляет 1-байтовые целые числа со знаком. |
| GEOGRAPHY(srid) | Представляет географические значения, координатная эталонная система которых является географической (долготой и широтой в градусах) и определяется значением srid . Если для srid установлено ANY, эталонная система координат не жестко закодирована в типе и становится значением во время выполнения. |
| Geometry(srid) | Представляет геометрические значения, координатная эталонная система которых понимается как Cartsian и определяется значением srid . Если для srid установлено ANY, эталонная система координат не жестко закодирована в типе и становится значением во время выполнения. |
| Элемент типа ARRAY <> | Представляет значения, которые составляют последовательность элементов типа elementType. |
| MAP < keyType,valueType > | Представляет значения в виде набора пар "ключ-значение". |
| STRUCT < [fieldName: fieldType [NOT NULL][COMMENT str][, ...]] > | Представляет значения со структурой, описанной последовательностью полей. |
| VARIANT | Представляет полуструктурированные данные. |
| OBJECT | Представляет значения в структуре VARIANT, описываемой набором полей. |
Important
Delta Lake не поддерживает VOID тип.
Классификация типов данных
Типы данных сгруппированы по следующим категориям:
Целочисленные типы
Целочисленные числовые типы представляют целые числа:
Точные числовые типы
Точные числовые типы представляют базовые-10 числа:
Типы двоичных чисел с плавающей запятой
Двоичные типы с плавающей точкой используют экспоненты и двоичное представление, чтобы охватить большой диапазон чисел.
Числовые типы
Числовые типы представляют все числовые типы данных:
Типы даты и времени
Типы даты и времени представляют компоненты даты и времени:
Геопространственные типы
Геопространственные типы представляют геометрические или географические объекты:
Простые типы
Простые типы — это типы, определенные путем хранения одноэлементных значений:
Сложные типы
Сложные типы состоят из нескольких компонентов сложных или простых типов:
Сопоставления языков
Область применения:
Databricks Runtime
Scala
Типы данных Spark SQL определены в пакете org.apache.spark.sql.types. Доступ к ним осуществляется путем импорта пакета:
import org.apache.spark.sql.types._
| Тип SQL | Тип данных | Тип значения | API для доступа или создания типа данных |
|---|---|---|---|
| TINYINT | ByteType | Byte | ByteType |
| SMALLINT | ShortType | Short | ShortType |
| INT | IntegerType | Int | IntegerType |
| BIGINT | LongType | Long | LongType |
| FLOAT | FloatType | Float | FloatType |
| DOUBLE | DoubleType | Double | DoubleType |
| DECIMAL(p,s) | DecimalType | java.math.BigDecimal | DecimalType |
| STRING | StringType | String | StringType |
| BINARY | BinaryType | Array[Byte] | BinaryType |
| BOOLEAN | BooleanType | Boolean | BooleanType |
| TIMESTAMP | TimestampType | java.sql.Timestamp | TimestampType |
| TIMESTAMP_NTZ | TimestampNTZType | java.time.LocalDateTime | TimestampNTZType |
| DATE | DateType | java.sql.Date | DateType |
| Интервал в годах и месяцах | YearMonthIntervalType | java.time.Period | ТипИнтервалаГодМесяц (3) |
| интервал дня | DayTimeIntervalType | java.time.Duration | DayTimeIntervalType (3) |
| GEOGRAPHY(srid) | Тип географии | org.apache.spark.unsafe.type.GeographyVal | Тип географии |
| Geometry(srid) | GeometryType | org.apache.spark.unsafe.type.GeometryVal | GeometryType |
| ARRAY | ArrayType | scala.collection.Seq | ArrayType(elementType [, containsNull]). (2) |
| MAP | MapType | scala.collection.Map | MapType(keyType, valueType [, valueContainsNull]). (2) |
| STRUCT | StructType | org.apache.spark.sql.Row | StructType(fields). fields — это Seq в StructFields. 4. |
| StructField | Тип значения типа данных этого поля (например, Int для StructField с типом данных IntegerType). | Поле структуры (StructField) с параметрами name, dataType [, nullable]. 4 | |
| VARIANT | VariantType | org.apache.spark.unsafe.type.VariantVal | VariantType |
| OBJECT | Не поддерживается | Не поддерживается | Не поддерживается |
Java
Типы данных Spark SQL определены в пакете org.apache.spark.sql.types. Чтобы получить доступ к типу данных или создать его, используйте фабричные методы, предоставленные в org.apache.spark.sql.types.DataTypes.
| Тип SQL | Тип данных | Тип значения | API для доступа или создания типа данных |
|---|---|---|---|
| TINYINT | ByteType | byte или Byte | DataTypes.ByteType |
| SMALLINT | ShortType | короткий или Short | DataTypes.ShortType |
| INT | IntegerType | int или Integer | DataTypes.IntegerType |
| BIGINT | LongType | long или Long | DataTypes.LongType |
| FLOAT | FloatType | float или Float | DataTypes.FloatType |
| DOUBLE | DoubleType | double или Double | DataTypes.DoubleType |
| DECIMAL(p,s) | DecimalType | java.math.BigDecimal | DataTypes.createDecimalType() DataTypes.createDecimalType(precision, scale). |
| STRING | StringType | String | DataTypes.StringType |
| BINARY | BinaryType | byte[] | DataTypes.BinaryType |
| BOOLEAN | BooleanType | boolean или Boolean | DataTypes.BooleanType |
| TIMESTAMP | TimestampType | java.sql.Timestamp | DataTypes.TimestampType |
| TIMESTAMP_NTZ | TimestampNTZType | java.time.LocalDateTime | DataTypes.TimestampNTZType |
| DATE | DateType | java.sql.Date | DataTypes.DateType |
| Интервал в годах и месяцах | YearMonthIntervalType | java.time.Period | ТипИнтервалаГодМесяц (3) |
| интервал дня | DayTimeIntervalType | java.time.Duration | DayTimeIntervalType (3) |
| GEOGRAPHY(srid) | Тип географии | org.apache.spark.unsafe.type.GeographyVal | Тип географии |
| Geometry(srid) | GeometryType | org.apache.spark.unsafe.type.GeometryVal | GeometryType |
| ARRAY | ArrayType | ava.util.List | DataTypes.createArrayType(elementType [, containsNull]). (2) |
| MAP | MapType | java.util.Map | DataTypes.createMapType(keyType, valueType [, valueContainsNull]). (2) |
| STRUCT | StructType | org.apache.spark.sql.Row | DataTypes.createStructType(fields). fields — это список или массив StructField. 4 |
| StructField | Тип значения типа данных этого поля (например, int в StructField с типом данных IntegerType). | DataTypes.createStructField(name, dataType, nullable) 4 | |
| VARIANT | VariantType | org.apache.spark.unsafe.type.VariantVal | VariantType |
| OBJECT | Не поддерживается | Не поддерживается | Не поддерживается |
Python
Типы данных Spark SQL определены в пакете pyspark.sql.types. Доступ к ним осуществляется путем импорта пакета:
from pyspark.sql.types import *
| Тип SQL | Тип данных | Тип значения | API для доступа или создания типа данных |
|---|---|---|---|
| TINYINT | ByteType | int или long. (1) | ByteType() |
| SMALLINT | ShortType | int или long. (1) | ShortType() |
| INT | IntegerType | int или long | IntegerType() |
| BIGINT | LongType | long (1) | LongType() |
| FLOAT | FloatType | float (1) | FloatType() |
| DOUBLE | DoubleType | float | DoubleType() |
| DECIMAL(p,s) | DecimalType | decimal.Decimal | DecimalType() |
| STRING | StringType | string | StringType() |
| BINARY | BinaryType | bytearray | BinaryType() |
| BOOLEAN | BooleanType | bool | BooleanType() |
| TIMESTAMP | TimestampType | datetime.datetime | TimestampType() |
| TIMESTAMP_NTZ | TimestampNTZType | datetime.datetime | TimestampNTZType() |
| DATE | DateType | datetime.date | DateType() |
| Интервал в годах и месяцах | YearMonthIntervalType | Не поддерживается | Не поддерживается |
| интервал дня | DayTimeIntervalType | datetime.timedelta | DayTimeIntervalType (3) |
| GEOGRAPHY(srid) | Тип географии | GeographyVal | GeographyType() |
| Geometry(srid) | GeometryType | GeometryVal | ТипГеометрии() |
| ARRAY | ArrayType | список, кортеж или массив | ArrayType(elementType, [containsNull]). (2) |
| MAP | MapType | dict | MapType(keyType, valueType, [valueContainsNull]). (2) |
| STRUCT | StructType | список или кортеж | StructType(fields). Поле является последовательностью StructField. (4) |
| StructField | Тип значения типа данных этого поля (например, Int для StructField с типом данных IntegerType). | StructField(name, dataType, [nullable]). (4) | |
| VARIANT | VariantType | VariantVal | VariantType() |
| OBJECT | Не поддерживается | Не поддерживается | Не поддерживается |
R
| Тип SQL | Тип данных | Тип значения | API для доступа или создания типа данных |
|---|---|---|---|
| TINYINT | ByteType | целое число (1) | 'byte' |
| SMALLINT | ShortType | целое число (1) | 'short' |
| INT | IntegerType | integer | 'integer' |
| BIGINT | LongType | целое число (1) | 'long' |
| FLOAT | FloatType | числовой (1) | 'float' |
| DOUBLE | DoubleType | numeric | 'double' |
| DECIMAL(p,s) | DecimalType | Не поддерживается | Не поддерживается |
| STRING | StringType | character | 'string' |
| BINARY | BinaryType | raw | 'binary' |
| BOOLEAN | BooleanType | logical | 'bool' |
| TIMESTAMP | TimestampType | POSIXct | 'timestamp' |
| TIMESTAMP_NTZ | TimestampNTZType | datetime.datetime | TimestampNTZType() |
| DATE | DateType | Date | 'date' |
| Интервал в годах и месяцах | YearMonthIntervalType | Не поддерживается | Не поддерживается |
| интервал дня | DayTimeIntervalType | Не поддерживается | Не поддерживается |
| GEOGRAPHY(srid) | Не поддерживается | Не поддерживается | Не поддерживается |
| Geometry(srid) | Не поддерживается | Не поддерживается | Не поддерживается |
| ARRAY | ArrayType | vector или список | list(type='array', elementType=elementType, containsNull=[containsNull]). (2) |
| MAP | MapType | environment | list(type='map', keyType=keyType, valueType=valueType, valueContainsNull=[valueContainsNull]). (2) |
| STRUCT | StructType | именованный список | list(type='struct', fields=fields). fields — это Seq в StructFields. (4) |
| StructField | Тип значения типа данных этого поля (например, Int в StructField с типом данных IntegerType). | list(name=name, type=dataType, nullable=[nullable]). (4) | |
| VARIANT | Не поддерживается | Не поддерживается | Не поддерживается |
| OBJECT | Не поддерживается | Не поддерживается | Не поддерживается |
(1) Числа преобразуются в домен во время выполнения. Убедитесь, что числа находятся в заданном диапазоне.
(2) Необязательное значение по умолчанию TRUE.
(3) Типы интервалов
YearMonthIntervalType([startField,] endField)— интервал "год — месяц", состоящий из непрерывного подмножества следующих полей:startFieldявляется крайним левым полем, аendField— крайним правым полем типа. Допустимые значения дляstartFieldиendField:0(MONTH)и1(YEAR).DayTimeIntervalType([startField,] endField)— представляет собой дневной интервал, состоящий из непрерывного набора следующих полей:startFieldявляется крайним левым полем, аendField— крайним правым полем типа. Допустимые значения дляstartFieldиendField:0(DAY),1(HOUR),2(MINUTE),3(SECOND).
(4)StructType
-
StructType(fields)представляет значения, которые описывают структуру в виде последовательности, списка или массиваStructField(fields). Не допускается использование двух полей с одинаковыми именами. -
StructField(name, dataType, nullable)представляет поле вStructType. Имя поля указывается с помощьюname. Тип данных поля указывается с помощью dataType.nullableуказывает, могут ли значения этих полей быть равнымиnull. Это значение по умолчанию.