У меня есть транзакционная таблица:
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 |
+-------+--+
Есть ли причина для этого?Как мне просто переименовать столбец?