HiveQL ALTER TABLE: NullPointerException, INSERT INTO: MISSING table - PullRequest
0 голосов
/ 09 октября 2019

У меня проблемы с командами INSERT INTO и ALTER TABLE. Я нашел следующий код в своих заметках, который указывает, что он, вероятно, работал в какой-то момент. Тем не менее, это не работает сейчас. Кто-нибудь может указать на ошибки?

DROP TABLE anyoung.toytable_docs;
CREATE TABLE IF NOT EXISTS anyoung.toytable_docs
(
  id INT COMMENT 'unique document ID', 
  rev INT,
  content STRING
)
COMMENT 'Employee details';

Оба из следующих также сбой:

INSERT INTO TABLE anyoung.toytable_docs (`id`, `rev`, `content`) VALUES
  ('1', '1', 'The earth is flat'),
  ('2', '1', 'One hundred angels can dance on the head of a pin'),
  ('1', '2', 'The earth is flat and rests on a bull\'s horn'),
  ('1', '3', 'The earth is like a ball.');

use anyoung;
INSERT INTO TABLE toytable_docs (`id`, `rev`, `content`) VALUES
  ('1', '1', 'The earth is flat'),
  ('2', '1', 'One hundred angels can dance on the head of a pin'),
  ('1', '2', 'The earth is flat and rests on a bull\'s horn'),
  ('1', '3', 'The earth is like a ball.');

с: FAILED: ParseException line 1:32 cannot recognize input near 'VALUES' '(' ''1'' in select clause

Когда я пытаюсь выполнить команду ALTER TABLE, оба из следующих неудачных:

ALTER TABLE anyoung.toytable_docs CHANGE content content STRING COMMENT 'The actual contents of the document';

use anyoung;
ALTER TABLE toytable_docs CHANGE content content STRING COMMENT 'The actual contents of the document';

У кого-нибудь есть идеи? Я уже гуглил / ТАК и т. Д.

1 Ответ

0 голосов
/ 09 октября 2019

Альтернатива - вставить из select:

with your_data as(
select stack(4,
'1', '1', 'The earth is flat',
'2', '1', 'One hundred angels can dance on the head of a pin',
'1', '2', 'The earth is flat and rests on a bull\'s horn',
'1', '3', 'The earth is like a ball.'
) as (id, rev, content)
)

use anyoung;
INSERT INTO TABLE toytable_docs 
select id, rev, content from your_data;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...