Встреча "Ошибка Невозможно изменить таблицу." когда изменить положение столбцов таблицы в Hive - PullRequest
0 голосов
/ 04 июля 2018

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

hive>describe fiction_movie;
OK
title string
actors array<string>
genre string
rating int
4 rows selected (0.03 seconds)

содержание в таблице:

hive> select * from fiction_movie;
OK
avatar  ["zoe saldana","Sam worthington"]   science fiction  7
logan  ["hugh jackman","Patrick stewart"]   science fiction  8
2 rows selected (0.352 seconds)

То, что я хочу сделать, это изменить расположение столбцов и поставить заголовок после жанра:

#I tried
hive>alter table fiction_movie change column title title string after genre;

Но это дало мне следующую ошибку:

Ошибка: ошибка при обработке оператора: СБОЙ: Ошибка выполнения, код возврата 1 из org.apache.hadoop.hive.ql.exec.DDLTask. Невозможно изменить таблицу. Следующие столбцы имеют типы, несовместимые с существующими столбцами в соответствующих позициях:
актеры, жанр (штат = 08S01, код = 1)

Кто-нибудь знает почему? Спасибо!

1 Ответ

0 голосов
/ 04 июля 2018

Этот код отлично работает на моей машине.

hive> create table fiction_movie(
    > title string,
    > actors array<string>,
    > genre string,
    > rating int);
OK
Time taken: 0.155 seconds
hive> alter table fiction_movie change column title title string after genre;
OK
Time taken: 0.4 seconds
hive> describe  fiction_movie;
OK
actors                  array<string>
genre                   string
title                   string
rating                  int
Time taken: 0.37 seconds, Fetched: 4 row(s)

Или попробуйте установить это свойство. Вы можете принудительно настроить улей, чтобы изменить его, используя:

`SET hive.metastore.disallow.invalid.col.type.changes=true;` 

чем переделать свой стол.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...