· 7 years ago · Jan 23, 2019, 12:38 PM
1set hivevar:ds=2018-12-01;
2set hivevar:pd=date_add('${hivevar:ds}',-1);
3set hive.exec.dynamic.partition.mode=nonstrict;
4
5CREATE TABLE IF NOT EXISTS XTABLE (emp_id BIGINT, start_time STRING, end_time STRING)
6PARTITIONED BY(day STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY 't';
7
8
9--THIS IS WORKING FINE
10INSERT OVERWRITE table XTABLE partition(day='${hivevar:ds}')
11select distinct d.emp_id, d.start_time, d.end_time from
12(
13select emp_id, start_time, end_time from XTABLE where day='${hivevar:ds}'
14) d;
15
16
17--THIS IS THROWING AN ERROR cannot recognize input near ''date_add('' '2018' '-' in constant
18--SEEMS PROBLEM IS WHILE SETTING THE VARIABLE
19INSERT OVERWRITE table XTABLE partition(day='${hivevar:pd}')
20select distinct d.emp_id, d.start_time, d.end_time from
21(
22select emp_id, start_time, end_time from XTABLE where day='${hivevar:pd}'
23) d;
24
25ds=`date -d "+1 day" +"%Y-%m-%d"`
26echo $ds
27
28hive --hivevar ds="${ds}" -e "INSERT OVERWRITE table XTABLE partition(day='${hivevar:ds}') "