Я хочу добавить дополнительный столбец в мою существующую таблицу кустов, чтобы у меня была текущая отметка времени для этого дня - PullRequest
0 голосов
/ 09 февраля 2019

Нужно добавить дополнительный столбец даты в мою существующую таблицу кустов, чтобы он выбирал текущую дату из системы для этого дня

hive (hivejobs)>
select * from my_current_Table;
OK
name   age
Aditya  2
Aditya  7

Я хочу добавить сюда столбец даты, чтобы я мог получитьтекущая системная дата для этого дня, как только я добавлю столбец.Я думаю, что можно обойти это путем объединения двух таблиц с другой таблицей с текущей системной датой.

ниже - мой код и мыслительный процесс.

alter table my_current_Table add columns( todays_date current_date());

это дает мнеошибка, я не могу найти способ сделать это

, пожалуйста, помогите.

ожидаемый результат

hive (hivejobs)> 
select * from my_current_Table;

OK
name   age  todays_date
Aditya  2   2019-02-08 13:21:50
Aditya  7   2019-02-08 13:21:50

Ответы [ 2 ]

0 голосов
/ 09 февраля 2019

Вы не можете определить вычисляемый столбец в таблице Hive.

Если вы хотите всегда запрашивать текущую дату, используйте функцию current_timestamp в выборке:

select t.*, 
       date_format(current_timestamp,'yyyyMMdd HH:mm:ss') as todays_date 
  from my_current_Table t;

Если вы хотите добавить столбеци сохраните дату, когда была вставлена ​​запись, добавьте столбец в таблицу и перезагрузите ее, например, так:

alter table my_current_Table  add columns(load_date string);

insert overwrite table my_current_Table 
select t.*, 
           date_format(current_timestamp,'yyyyMMdd HH:mm:ss') as load_date
      from my_current_Table t;
0 голосов
/ 09 февраля 2019

Ниже приведены шаги для того же самого,

  1. Создать временную таблицу

создать таблицу my_current_Table_temp (строка имени, age int);

Вставка данных с использованием файла или существующей таблицы в таблицу my_current_Table_temp:

name | age

Aditya |2

Адитья |7

Создать таблицу, которая будет содержать ваши окончательные данные:

создать таблицу my_current_Table (строка имени, age tinyint, строка todays_date);

Вставить данные из временной таблицы, а также добавить столбцы со значением по умолчанию в качестве текущей даты и времени:

вставить таблицу перезаписи my_current_Table выбрать имя, возраст, FROM_UNIXTIME (UNIX_TIMESTAMP (), 'дд / мм / гггг чч: мм') из my_current_Table_temp;

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