Hive - Типы данных
В этой главе вы познакомитесь с различными типами данных в Hive, которые участвуют в создании таблицы. Все типы данных в Hive подразделяются на четыре типа, а именно:
- Типы столбцов
- Literals
- Нулевые значения
- Сложные типы
Типы столбцов
Тип столбца используется как типы данных столбца Hive. Вот они:
Интегральные типы
Данные целочисленного типа могут быть указаны с использованием целочисленных типов данных INT. Когда диапазон данных превышает диапазон INT, вам нужно использовать BIGINT, а если диапазон данных меньше INT, вы используете SMALLINT. TINYINT меньше SMALLINT.
В следующей таблице показаны различные типы данных INT:
Тип | Постфикс | пример |
---|---|---|
TINYINT | Y | 10лет |
МАЛЕНЬКИЙ | S | 10S |
INT | - | 10 |
BIGINT | L | 10л |
Типы строк
Типы данных строкового типа можно указывать с помощью одинарных кавычек ('') или двойных кавычек («»). Он содержит два типа данных: VARCHAR и CHAR. Hive следует за escape-символами C-типа.
В следующей таблице показаны различные типы данных CHAR:
Тип данных | Длина |
---|---|
VARCHAR | 1 по 65355 |
СИМВОЛ | 255 |
Отметка времени
Он поддерживает традиционные временные метки UNIX с дополнительной точностью до наносекунды. Он поддерживает формат java.sql.Timestamp «ГГГГ-ММ-ДД ЧЧ: ММ: СС.fffffffff» и формат «гггг-мм-дд чч: мм: сс.ffffffffff».
Даты
Значения DATE описываются в формате год / месяц / день в виде {{ГГГГ-ММ-ДД}}.
Десятичные дроби
Тип DECIMAL в Hive аналогичен формату Big Decimal в Java. Он используется для представления неизменной произвольной точности. Синтаксис и пример следующие:
DECIMAL(precision, scale)
decimal(10,0)
Типы союзов
Union - это набор разнородных типов данных. Вы можете создать экземпляр, используяcreate union. Синтаксис и пример следующие:
UNIONTYPE<int, double, array<string>, struct<a:int,b:string>>
{0:1}
{1:2.0}
{2:["three","four"]}
{3:{"a":5,"b":"five"}}
{2:["six","seven"]}
{3:{"a":8,"b":"eight"}}
{0:9}
{1:10.0}
Литералы
В Hive используются следующие литералы:
Типы с плавающей запятой
Типы с плавающей точкой - это не что иное, как числа с десятичной точкой. Обычно этот тип данных состоит из данных типа DOUBLE.
Десятичный тип
Данные десятичного типа - это не что иное, как значение с плавающей запятой с более высоким диапазоном, чем тип данных DOUBLE. Диапазон десятичного типа составляет приблизительно от -10-308 до 10 308 .Нулевое значение
Отсутствующие значения представлены специальным значением NULL.
Сложные типы
Сложные типы данных Hive следующие:
Массивы
Массивы в Hive используются так же, как в Java.
Syntax: ARRAY<data_type>
Карты
Карты в Hive похожи на Java Maps.
Syntax: MAP<primitive_type, data_type>
Структуры
Структуры в Hive аналогичны использованию сложных данных с комментариями.
Syntax: STRUCT<col_name : data_type [COMMENT col_comment], ...>