According to

https://cwiki.apache.org/Hive/dynamicpartitions.html

for dynamic partitions the partition clause must look like

PARTITION(year, month, edate)

the actual expressions should be included in the select list. So in your
example the select list should look something like

SELECT sh.EVENT_TIME, sh.person_NAME, substring(event_time, 0, 4) as year,
.....

Ashish

On Wed, Apr 25, 2012 at 2:51 AM, Shin Chan <had...@gmx.com> wrote:

> Hi
>
> While using dynamic partitions can we do something like this
>
> FROM stage_customer sh
> INSERT OVERWRITE TABLE Fact_Customer
> PARTITION(year
> =substring(event_time,0,4),month=substring(event_time,6,2),edate=substring(event_time,9,2),ehour=substring(event_time,12,2))
> SELECT sh.EVENT_TIME , sh.person_NAME;
>
> Basically I am trying to decide next partitions based on calculation by
> substring of field EVENT_TIME present in stage table , but its giving error
> as
>
> Parse Error: line 3:16 cannot recognize input near 'substring' '('
> 'event_time' in constant
>
> Is it possible to do ?
>
> We cannot use functions to decide partitions ?

Reply via email to