What's the answer -- does the "rank" keyword have to be lowercase?

If lowercase is obligatory we need to revise the wiki, which shows all
uppercase (
https://cwiki.apache.org/confluence/display/Hive/LanguageManual+WindowingAndAnalytics
).

In the test files it's lowercase (windowing_rank.q,
ptf_negative_WhereWithRankCond.q).
 The patch for HIVE-896 shows a lowercase name in GenericUDAFRank.java but
I don't know if that means lowercase is required:

@WindowFunctionDescription
>
> (
>
> description = @Description(
>
> name = "rank",
>
> value = "_FUNC_(x)"
>
> ),
>
> supportsWindow = false,
>
> pivotResult = true
>
> )
>


And what about the other keywords in the wikidoc?  Same lowercase
requirement?

-- Lefty


On Fri, Jul 26, 2013 at 5:30 PM, saurabh <mpp.databa...@gmail.com> wrote:

> Hi all,
>
> Below are some of observations based on the on-going rank function
> discussion.
>
> 1. I executed below mentioned queries  and only the query with "rank"
> (lowercase) executed successfully, rest were throwing exceptions "FAILED:
> SemanticException Failed to breakup Windowing invocations into Groups."
>
> -  select cust_id, ord_dt, RANK() w from cust_ord window w as (partition
> by cust_id order by ord_dt);
>
> -  select cust_id, ord_dt, Rank() w from cust_ord window w as (partition
> by cust_id order by ord_dt);
>
> -   select cust_id, ord_dt, rank() w from cust_ord window w as (partition
> by cust_id order by ord_dt);
>
> It seems "rank" keyword is case-sensitive. Attached is the screenshot for
> reference.
>
> 2. I created a dummy table with the data provided in the below mail trail
> and achieved the expected output, using the below mentioned query.
>
> *select cust_id, ord_dt, rank() over (partition by cust_id order by
> ord_dt) from cust_ord;*
>
>  Request all to kindly review these details and suggest if it was of any
> help!
>
> Thanks.
>
>
> On Sat, Jul 27, 2013 at 12:07 AM, j.barrett Strausser <
> j.barrett.straus...@gmail.com> wrote:
>
>> Any further help on this, otherwise I'll file a jira.
>>
>>
>> On Wed, Jul 24, 2013 at 11:32 PM, j.barrett Strausser <
>> j.barrett.straus...@gmail.com> wrote:
>>
>>> As an example : If I run my query above removing the arg the following
>>> is thrown.
>>>
>>> FAILED: SemanticException Failed to breakup Windowing invocations into
>>> Groups. At least 1 group must only depend on input columns. Also check for
>>> circular dependencies.
>>> Underlying error:
>>> org.apache.hadoop.hive.ql.exec.UDFArgumentTypeException: One or more
>>> arguments are expected.
>>>
>>>
>>> Similar issue and fix here:
>>>
>>> http://www.marshut.com/rqvpz/use-rank-over-partition-function-in-hive-11.html
>>>
>>> Even if it didn't require an arg it still doesn't explain my anomalous
>>> output.
>>>
>>>
>>>
>>> On Wed, Jul 24, 2013 at 11:28 PM, j.barrett Strausser <
>>> j.barrett.straus...@gmail.com> wrote:
>>>
>>>> That isn't true. If you try to run the above HIVE without an argument,
>>>> it will throw an exception. I have seen other users replicate this problem
>>>> as well.
>>>>
>>>> I can file a JIRA if someone can confirm that my query should work.
>>>>
>>>>
>>>> On Wed, Jul 24, 2013 at 11:02 PM, manishbh...@rocketmail.com <
>>>> manishbh...@rocketmail.com> wrote:
>>>>
>>>>> Analytical function doesn't expect any argument. Rank() itself enough
>>>>> to sequence based on the window you have defined in partition by. So
>>>>>
>>>>> Rank() over (partition by cmscustid  order by orderdate)
>>>>>
>>>>> Should work as long as I have wrote right syntax for hive.
>>>>>
>>>>> Sent via Rocket from my HTC
>>>>>
>>>>> ----- Reply message -----
>>>>> From: "j.barrett Strausser" <j.barrett.straus...@gmail.com>
>>>>> To: <user@hive.apache.org>
>>>>> Subject: Semantics of Rank.
>>>>> Date: Thu, Jul 25, 2013 1:08 AM
>>>>>
>>>>>
>>>>> Thanks for the reply. Perhaps my misunderstanding of the relation
>>>>> between
>>>>> rank and the windowing function is wrong.
>>>>>
>>>>> What I want to achieve for the following is : For a given customer id,
>>>>> sort his orders. I thought the below would work.
>>>>>
>>>>> SELECT eh.cmsorderid, eh.orderdate, RANK(orderdate) w FROM order_data
>>>>> eh
>>>>> window w as (partition by cmscustid  order by orderdate);
>>>>>
>>>>> The rank function instead returns the rank of the order date over all
>>>>> all
>>>>> order dates.
>>>>>
>>>>> Example snippet from above
>>>>>
>>>>> Actual :
>>>>>
>>>>> 6758783    27APR2012    94
>>>>> 6758783    23JUN2012    95
>>>>> 6758785    14DEC2012    96
>>>>> 6758795    18DEC2011    97
>>>>> 6758796    06MAY2012    98
>>>>> 6758798    24MAR2013    99
>>>>> 6758799    23NOV2012    100
>>>>>
>>>>>
>>>>> Expected :
>>>>>
>>>>> 6758783    27APR2012    1
>>>>> 6758783    23JUN2012    2
>>>>> 6758785    14DEC2012    1
>>>>> 6758795    18DEC2011    1
>>>>> 6758796    06MAY2012    1
>>>>> 6758798    24MAR2013    1
>>>>> 6758799    23NOV2012    1
>>>>>
>>>>>
>>>>> -b
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Wed, Jul 24, 2013 at 3:17 PM, Shahar Glixman <sglix...@outbrain.com
>>>>> >wrote:
>>>>>
>>>>> > the argument to rank is simply some value, whereas the rank function
>>>>> > compare this value
>>>>> >  to the previous value received, if value is same, rank returns
>>>>> ++index,
>>>>> > otherwise, rank return 1.
>>>>> > pseudo code:
>>>>> >
>>>>> > class Rank {
>>>>> > int index;
>>>>> > Object previousValue = null;
>>>>> > int evaluate(Object value) {
>>>>> >   if (value == previousValue) {
>>>>> >     return ++index;
>>>>> >   }
>>>>> >   previousValue = value;
>>>>> >   index = 1;
>>>>> >   return 1;
>>>>> > }
>>>>> >
>>>>> >
>>>>> > On Wed, Jul 24, 2013 at 9:59 PM, j.barrett Strausser <
>>>>> > j.barrett.straus...@gmail.com> wrote:
>>>>> >
>>>>> >> It seems as though I am required to pass in an argument to RANK().
>>>>> >>
>>>>> >> What is the effect of passing this argument in ?
>>>>> >>
>>>>> >> In a RANK function the output for RANK should be the number of rows
>>>>> >> preceding
>>>>> >> a row in a given window. As  windows are specified by the partition
>>>>> and
>>>>> >> order by fields I don't understand the effect of passing in an arg
>>>>> to RANK
>>>>> >>
>>>>> >> Are the other non-aggregate function similar? Meaning : Cume_dist,
>>>>> Ntile
>>>>> >> --
>>>>> >>
>>>>> >>
>>>>> >> https://github.com/bearrito
>>>>> >> @deepbearrito
>>>>> >>
>>>>> >
>>>>> >
>>>>> > The above terms reflect a potential business arrangement, are
>>>>> provided solely
>>>>> > as a basis for further discussion, and are not intended to be and do
>>>>> not
>>>>> > constitute a legally binding obligation. No legally binding
>>>>> obligations will
>>>>> > be created, implied, or inferred until an agreement in final form is
>>>>> executed
>>>>> > in writing by all parties involved.
>>>>> >
>>>>> > This email and any attachments hereto may be confidential or
>>>>> privileged.
>>>>> >  If you received this communication by mistake, please don't forward
>>>>> it
>>>>> > to anyone else, please erase all copies and attachments, and please
>>>>> let
>>>>> > me know that it has gone to the wrong person. Thanks.
>>>>> >
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>>
>>>>>
>>>>> https://github.com/bearrito
>>>>> @deepbearrito
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>>
>>>>
>>>> https://github.com/bearrito
>>>> @deepbearrito
>>>>
>>>
>>>
>>>
>>> --
>>>
>>>
>>> https://github.com/bearrito
>>> @deepbearrito
>>>
>>
>>
>>
>> --
>>
>>
>> https://github.com/bearrito
>> @deepbearrito
>>
>
>

Reply via email to