Apache Hive: переименование столбцов типа array> - PullRequest
0 голосов
/ 26 сентября 2019

У меня есть транзакционная таблица:

        CREATE TABLE Test(
         `name` string,
         `tracking_id` string,
          `actions`    array<struct<call:string,score:int,decision:string>>)
       PARTITIONED BY (
          `year` int,
          `month` int,
          `day` int)
       CLUSTERED BY (
           tracking_id)
       INTO 6 BUCKETS
       STORED AS ORC
       TBLPROPERTIES (
         'orc.compress'='ZLIB',
         'orc.compression.strategy'='SPEED',
         'orc.create.index'='true',
         'orc.encoding.strategy'='SPEED',
         'transactional'='true');

У меня есть куча данных в таблице

При выполнении select * from test limit 1;

0: jdbc:hive2://hive-server-two:10000> select * from test;
+------------+-------------------+------------------------------------------------+------------+-------------+-----------+--+
| test.name  | test.tracking_id  |                  test.actions                  | test.year  | test.month  | test.day  |
+------------+-------------------+------------------------------------------------+------------+-------------+-----------+--+
| User25     | 25                | [{"call":"put","score":100,"decision":"win"}]  | 2019       | 9           | 26        |
+------------+-------------------+------------------------------------------------+------------+-------------+-----------+--+

Я сейчасхочу переименовать столбец actions в play

alter table test change actions play array<struct<call:string,score:int,decision:string>>;

Теперь, когда я запускаю select play from test limit 1

+-------+--+
|  play |
+-------+--+
| NULL  |
+-------+--+

Есть ли причина для этого?Как мне просто переименовать столбец?

1 Ответ

0 голосов
/ 27 сентября 2019

Нам не разрешено изменять столбец с типом сложных типов, и в примере вы указали общий тип данных.

Примечание: Комплексные типы

arrays: ARRAY<data_type>
maps: MAP<primitive_type, data_type> 
structs: STRUCT<col_name : data_type >
union: UNIONTYPE<data_type, data_type, ...>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...