Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: Databricks SQL
Databricks Runtime
Для получения информации о правилах разрешения конфликтов между типами данных, см. правила SQL о типах данных.
Поддерживаемые типы данных
Azure Databricks поддерживает следующие типы данных:
Тип данных | Описание |
---|---|
BIGINT | Представляет 8-байтовые целые числа со знаком. |
ДВОИЧНЫЙ | Представляет значения последовательности байтов. |
БУЛЕВ | Представляет логические значения. |
ДАТА | Значения, содержащие значения полей «год», «месяц» и «день», без часового пояса. |
DECIMAL(p,s) | Представляет числа с максимальной точностью p и фиксированной шкалой s . |
двойной | 8-байтовые числа двойной точности с плавающей точкой. |
Флоат | 4-байтовые числа одиночной точности с плавающей точкой. |
ИНТ | Представляет 4-байтовые целые числа со знаком. |
ИНТЕРВАЛ квалификатор интервала | Представляет интервалы времени либо в секундах, либо в месяцах. |
ПУСТОТА | Нетипизированное значение NULL. |
SMALLINT | Представляет 2-байтовые целые числа со знаком. |
СТРУНА | Представляет значения символьных строк. |
TIMESTAMP | Значения, содержащие значения полей "год", "месяц", "день", "час", "минута" и "секунда", используя локальный часовой пояс сеанса. |
TIMESTAMP_NTZ | Представляет значения полей года, месяца, дня, часа, минуты и секунды. Все операции выполняются без учета часового пояса. |
ТИНИНТ | Представляет 1-байтовые целые числа со знаком. |
Элемент типа ARRAY <> | Представляет значения, которые составляют последовательность элементов типа elementType . |
MAP < keyType,valueType > | Представляет значения в виде набора пар "ключ-значение". |
STRUCT < [fieldName: fieldType [NOT NULL][COMMENT str][, ...]] > | Представляет значения со структурой, описанной последовательностью полей. |
ВАРИАНТ | Представляет полуструктурированные данные. |
ОБЪЕКТ | Представляет значения в структуре VARIANT , описываемой набором полей. |
Внимание
Delta Lake не поддерживает VOID
тип.
Классификация типов данных
Типы данных сгруппированы по следующим категориям:
- Точные числовые типы представляют базовые-10 числа:
- Типы с плавающей запятой используют экспоненты и двоичное представление для покрытия большого диапазона чисел:
- Числовые типы представляют все числовые типы данных:
- Типы даты и времени представляют компоненты даты и времени:
- Простые типы — это типы, определенные путем хранения одноэлементных значений:
- Сложные типы состоят из нескольких компонентов сложных или простых типов:
Сопоставления языков
Относится к: Databricks Runtime
язык программирования Scala
Типы данных Spark SQL определены в пакете org.apache.spark.sql.types
. Доступ к ним осуществляется путем импорта пакета:
import org.apache.spark.sql.types._
Тип SQL | Тип данных | Тип значения | API для доступа или создания типа данных |
---|---|---|---|
ТИНИНТ | Тип байта | Байт | Тип байта |
SMALLINT | ShortType | Короткий | ShortType |
ИНТ | Целочисленный тип | int | Целочисленный тип |
BIGINT | ДлинныйТип | Длинный | ДлинныйТип |
Флоат | Тип с плавающей запятой | Тип с плавающей запятой | Тип с плавающей запятой |
двойной | ДвойнойТип | Двойной | ДвойнойТип |
DECIMAL(p,s) | Десятичный тип | java.math.BigDecimal | Десятичный тип |
СТРУНА | ТипСтроки | Строка | ТипСтроки |
ДВОИЧНЫЙ | БинарныйТип | Массив[Байт] | БинарныйТип |
БУЛЕВ | Тип Boolean | Логический | Тип Boolean |
TIMESTAMP | Тип временной метки | java.sql.Timestamp | Тип временной метки |
TIMESTAMP_NTZ | TimestampNTZType | java.time.LocalDateTime | TimestampNTZType |
ДАТА | ТипДата | java.sql.Date | ТипДата |
Интервал год-месяц | ТипИнтервалаГодМесяц | java.time.Period | Тип интервала год-месяц (3) |
интервал дня | ТипИнтервалаДняВремени | java.time.Duration | DayTimeIntervalType (3) |
МАССИВ | Тип массива | scala.collection.Seq | ArrayType(elementType [, containsNull]). (2) |
КАРТА | Тип карты | scala.collection.Map | MapType(keyType, valueType [, valueContainsNull]). (2) |
СТРУКТУРА | ТипСтруктуры | org.apache.spark.sql.Row | StructType(поля). fields — это Seq в StructFields. 4. |
StructField | Тип значения типа данных этого поля (например, Int для StructField с типом данных IntegerType). | Поле структуры (StructField) с параметрами name, dataType [, nullable]. 4 | |
ВАРИАНТ | Тип варианта | org.apache.spark.unsafe.type.VariantVal | Тип варианта |
ОБЪЕКТ | Не поддерживается | Не поддерживается | Не поддерживается |
Ява
Типы данных Spark SQL определены в пакете org.apache.spark.sql.types
. Чтобы получить доступ к типу данных или создать его, используйте фабричные методы, предоставленные в org.apache.spark.sql.types.DataTypes
.
Тип SQL | Тип данных | Тип значения | API для доступа или создания типа данных |
---|---|---|---|
ТИНИНТ | Тип байта | byte или Byte | DataTypes.ByteType |
SMALLINT | ShortType | короткий или Short | DataTypes.ShortType |
ИНТ | Целочисленный тип | int или Integer | Типы данных.Вид целого числа |
BIGINT | ДлинныйТип | long или Long | DataTypes.LongType |
Флоат | Тип с плавающей запятой | float или Float | DataTypes.FloatType |
двойной | ДвойнойТип | double или Double | ТипДанных.DoubleType |
DECIMAL(p,s) | Десятичный тип | java.math.BigDecimal | DataTypes.createDecimalType() DataTypes.createDecimalType(precision, scale). |
СТРУНА | ТипСтроки | Строка | DataTypes.StringType |
ДВОИЧНЫЙ | БинарныйТип | байт[] | DataTypes.BinaryType |
БУЛЕВ | Тип Boolean | boolean или Boolean | DataTypes.BooleanType (Тип данных. Логический тип) |
TIMESTAMP | Тип временной метки | java.sql.Timestamp | Типы данных.Тип отметки времени |
TIMESTAMP_NTZ | ТипВременнойМеткиNTZ | java.time.LocalDateTime | DataTypes.TimestampNTZType |
ДАТА | ТипДата | java.sql.Date | ТипыДанных.ТипДаты |
Интервал год-месяц | ТипИнтервалаГодМесяц | java.time.Period | Тип интервала год-месяц (3) |
интервал дня | ТипИнтервалаДняВремени | java.time.Duration | DayTimeIntervalType (3) |
МАССИВ | Тип массива | ava.util.List | DataTypes.createArrayType(elementType [, containsNull]). (2) |
КАРТА | Тип карты | java.util.Map | DataTypes.createMapType(keyType, valueType [, valueContainsNull]). (2) |
СТРУКТУРА | ТипСтруктуры | org.apache.spark.sql.Row | DataTypes.createStructType(fields). fields — это список или массив StructField. 4 |
StructField | Тип значения типа данных этого поля (например, int в StructField с типом данных IntegerType). | DataTypes.createStructField(name, dataType, nullable) 4 | |
ВАРИАНТ | Тип варианта | org.apache.spark.unsafe.type.VariantVal | Тип варианта |
ОБЪЕКТ | Не поддерживается | Не поддерживается | Не поддерживается |
Питон
Типы данных Spark SQL определены в пакете pyspark.sql.types
. Доступ к ним осуществляется путем импорта пакета:
from pyspark.sql.types import *
Тип SQL | Тип данных | Тип значения | API для доступа или создания типа данных |
---|---|---|---|
ТИНИНТ | Тип байта | int или long. (1) | ByteType() |
SMALLINT | ShortType | int или long. (1) | ShortType() |
ИНТ | Целочисленный тип | int или long | IntegerType() |
BIGINT | ДлинныйТип | long (1) | LongType() |
Флоат | Тип с плавающей запятой | float (1) | FloatType() |
двойной | ДвойнойТип | флoт | DoubleType() |
DECIMAL(p,s) | Десятичный тип | десятичный. Десятичный | DecimalType() |
СТРУНА | ТипСтроки | строка | StringType() |
ДВОИЧНЫЙ | БинарныйТип | массив байтов (bytearray) | BinaryType() |
БУЛЕВ | Тип Boolean | булевая переменная (bool) | BooleanType() |
TIMESTAMP | Тип временной метки | datetime.datetime | TimestampType() |
TIMESTAMP_NTZ | TimestampNTZType | datetime.datetime | TimestampNTZType() |
ДАТА | ТипДата | datetime.date | DateType() |
Интервал год-месяц | ТипИнтервалаГодМесяц | Не поддерживается | Не поддерживается |
интервал дня | ТипИнтервалаДняВремени | datetime.timedelta | DayTimeIntervalType (3) |
МАССИВ | Тип массива | список, кортеж или массив | ArrayType(elementType, [containsNull]). (2) |
КАРТА | Тип карты | Дикт | MapType(keyType, valueType, [valueContainsNull]). (2) |
СТРУКТУРА | ТипСтруктуры | список или кортеж | StructType(поля). Поле является последовательностью StructField. (4) |
StructField | Тип значения типа данных этого поля (например, Int для StructField с типом данных IntegerType). | StructField(name, dataType, [nullable]). (4) | |
ВАРИАНТ | Тип варианта | VariantVal | ТипВарианта() |
ОБЪЕКТ | Не поддерживается | Не поддерживается | Не поддерживается |
Р
Тип SQL | Тип данных | Тип значения | API для доступа или создания типа данных |
---|---|---|---|
ТИНИНТ | Тип байта | целое число (1) | байт |
SMALLINT | ShortType | целое число (1) | короткий |
ИНТ | Целочисленный тип | целое число | Целое число |
BIGINT | ДлинныйТип | целое число (1) | длинный |
Флоат | Тип с плавающей запятой | числовой (1) | «Плавать» |
двойной | ДвойнойТип | числовой | двойной |
DECIMAL(p,s) | Десятичный тип | Не поддерживается | Не поддерживается |
СТРУНА | ТипСтроки | символ | "string" |
ДВОИЧНЫЙ | БинарныйТип | сырой | "binary" |
БУЛЕВ | Тип Boolean | Логичный | 'bool' |
TIMESTAMP | Тип временной метки | POSIXct | "метка времени" |
TIMESTAMP_NTZ | TimestampNTZType | datetime.datetime | TimestampNTZType() |
ДАТА | ТипДата | Дата | "дата" |
Интервал год-месяц | ТипИнтервалаГодМесяц | Не поддерживается | Не поддерживается |
интервал дня | ТипИнтервалаДняВремени | Не поддерживается | Не поддерживается |
МАССИВ | Тип массива | vector или список | list(type='array', elementType=elementType, containsNull=[containsNull]). (2) |
КАРТА | Тип карты | окружающая среда | list(type='map', keyType=keyType, valueType=valueType, valueContainsNull=[valueContainsNull]). (2) |
СТРУКТУРА | ТипСтруктуры | именованный список | list(type='struct', fields=fields). fields — это Seq в StructFields. (4) |
StructField | Тип значения типа данных этого поля (например, Int в StructField с типом данных IntegerType). | list(name=name, type=dataType, nullable=[nullable]). (4) | |
ВАРИАНТ | Не поддерживается | Не поддерживается | Не поддерживается |
ОБЪЕКТ | Не поддерживается | Не поддерживается | Не поддерживается |
(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
. Это значение по умолчанию.