Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Область применения:
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 | YearMonthIntervalType (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 | YearMonthIntervalType (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. Это значение по умолчанию.