Hive изменить формат current_date при использовании current_date в операторе select - PullRequest
0 голосов
/ 27 сентября 2018

У меня есть таблица в Hive Она разбита на load_date

Теперь я хочу выбрать данные из этой таблицы, где load_date равно today

select * from table where load_date = current_date;

select * from table where load_date = 2018-09-26;

Но date_format у меня есть yyyy_MM_dd и current_date в формате yyyy-MM-dd.

Как я могу запросить мою таблицу, используя yyyy_MM_dd около current_date

ЧтоЯ хочу во время использования current_date в где пункт

select * from table where load_date = 2018_09_26;

Ответы [ 2 ]

0 голосов
/ 27 сентября 2018

Использование функции в предложении where, как это load_date = date_format(current_date, 'yyyy_MM_dd'), предотвратит сокращение раздела.У вас есть два варианта: перезагрузить таблицу с yyyy-MM-dd форматом даты или вычислить переменную перед использованием в предложении where.

Вот как рассчитать дату в формате 'yyyy_MM_dd' в оболочке и передать какпараметр для скрипта:

#!/bin/bash
date_var=$(date +'%Y_%m_%d')
#call your script
hive -hivevar date_var="$date_var" -f your_script.hql

И использовать переменную в скрипте:

select * from table where load_date = '${hivevar:date_var}';

И опция перезагрузки, если применимо, тривиальна;

0 голосов
/ 27 сентября 2018

Пожалуйста, сделайте, как показано ниже

select * from table where load_date = date_format(current_date, 'yyyy_MM_dd');

Это преобразует date format из yyyy-MM-dd в yyyy_MM-dd

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