【发布时间】:2017-03-17 10:35:47
【问题描述】:
我正在尝试将数据写入配置单元表并失败。在 Cycle_dt =null 结束时出现错误,并且只有一个分区正在写入。这是第一天。
set hive.auto.convert.join=true;
set hive.optimize.mapjoin.mapreduce=true;
set hive.exec.dynamic.partition.mode=nonstrict;
set hive.exec.dynamic.partition=true;
set mapred.map.tasks = 100;
Insert into table dynamic.dynamic_test_avro_v1 partition(cycle_dt)
Select date_time as CYCLE_TS, case when evar1 is not null or length(trim(evar1)) > 0 then cast(unbase64(substring(evar1,6,12)) as string) end NRNM ,
prop14 as state, evar8 as FLOW_TYPE, prop25 as KEY, pagename PAGE_NM,
partition_dt as cycle_dt from source.std_avro_v1 WHERE
(partition_dt = '2016-10-02' AND partition_dt < '2016-10-07')
AND (
evar8='google');
我不确定这里发生了什么。我有一个日期范围设置,只能将这些日期作为分区。
【问题讨论】:
-
partition_dt = '2016-10-02'? -
源表按天划分的分区
-
但它也是目标分区,因为它是最后一列 - 所以您在此查询中创建一个分区。
-
总的来说,
partition_dt = '2016-10-02' AND partition_dt < '2016-10-07'没有多大意义,因为它总是partition_dt = '2016-10-02' -
是的,你可能想要
partition_dt >= '2016-10-02'