We don't have such a udf right now, but it is extremely easy to write one.

Take a look at this (and search for UDF):
http://www.slideshare.net/ragho/hive-user-meeting-august-2009-facebook

Let us know if you have any questions.

Zheng

On Tue, Aug 4, 2009 at 7:21 AM, Andraz Tori<[email protected]> wrote:
> Hi Ashish, thanks for help!
>
> 1) regarding the group-by-week, it was entirely my fault... I miswrote the
> function... to get grouping by week one needs to have
> FIELD: date_add('2007-12-31', (datediff(date_field, '2007-12-31') / 7) * 7)
> GROUP BY: datediff(date_field, '2007-12-31') / 7
>
> This then works and you get both the grouping and the first day of the month
> as the field value
>
> 2) However this is not so simple for the month:
>
>> For getting numeric sorting you can do an order by CAST(month(pdate) AS
>> INT). That will probably work for you?
>
> This won't work since pdate by itself is a date string, not a number, and
> even if it was then the month dates would be:
> 2008-4-20 which comes after 2008-10-20 when sorting lexically
> Therefore the question is how to get zero padding with hive?
> I have this expression:
> concat(concat(concat(CAST(year(date_field) as STRING), '-'),
> CAST(month(date_field) as STRING)), '-1')
>
> which produces dates like:
> 2008-4-1
> but I want zero-padding, which means
> 2008-04-1
>
> How does one do that with hive?
>
> Is there a function that would take separate year,month and day values and
> return properly formated date?
>
> [btw from my experience support for handling dates in hive is extremely
> weak, and code becomes heavily convoluted to do it properly]
>
>
> --
> Andraz Tori, CTO
> Zemanta Ltd, New York, London, Ljubljana
> www.zemanta.com
> mail: [email protected]
> tel: +386 41 515 767
> twitter: andraz, skype: minmax_test
>
>
>



-- 
Yours,
Zheng

Reply via email to