#timestamp #hive
#временная метка #улей
Вопрос:
У меня есть одна таблица в улье со столбцом «даты» (строка) и значением «29.05.2014 11:58:02 AM». Мне нужно изменить тип данных со строки на временную метку для обработки данных, я создал временную таблицу и пытаюсь вставить данные из исходной таблицы:
create table temp as select
level,
from_unixtime(unix_timestamp(dates,'YYYY-MM-DD HH:MM:SS')) as newTime,
source,
eventid,
task,
description,
category
from logs;
Это не сработало .Как это решить?
пожалуйста, помогите.
Ответ №1:
Можете ли вы попробовать unix_timestamp, как показано ниже, и посмотреть, работает ли это.
unix_timestamp(dates, 'MM/dd/yyyy h:mm:ss a')
Чтобы узнать больше о форматировании даты, проверьте эту ссылку: http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html
PS: Я не пробовал это, так как у меня сейчас нет настройки улья.
Ответ №2:
Я надеюсь, что понимание приведенного ниже примера может решить проблему
создайте таблицу ex (строка идентификатора, строка времени, строка состояния)
формат строки
поля с разделителями, заканчивающиеся на ‘ t’
строки, заканчивающиеся на ‘ n’
, сохраненные в виде текстового файла;загрузить локальный входной путь данных ‘/home/jayanthsn/Jay.txt ‘ в таблицу ex;
o/p:
Пользователь01 03-09-2015 10:00 время входа в систему
Пользователь02 04-09-2015 10:00 время входа в систему
Пользователь03 05-09-2015 10:00 время входа в систему
(Приведите формат даты в том виде, в котором он есть, со строковым типом данных.)
Позже создайте еще одну таблицу, сделав этот столбец временной меткой.
создайте таблицу ex1 (строка идентификатора, временная метка времени, строка состояния) формат строки
поля с разделителями, заканчивающиеся на ‘ t’
строки, заканчивающиеся на ‘ n’
, сохраненные в виде текстового файла;вставить в таблицу ex1 идентификатор выбора, из_unixtime(unix_timestamp(timing,’MM-dd-yyyy HH:mm’)), статус из ex;
o/p:
Пользователь01 2015-03-09 10:00:00 время входа в систему
Пользователь02 2015-04-09 10:00:00 время входа в систему
Пользователь03 2015-05-09 10:00:00 время входа в систему
теперь вы можете получить стандартный формат временной метки.