simulate NTILE(n) , rank() functionality in pig

                 Key: PIG-821
             Project: Pig
          Issue Type: New Feature
          Components: impl
    Affects Versions: 0.2.0
         Environment: mithril gold -gateway 4000
            Reporter: Rekha
             Fix For: 0.2.0


I came across a job which has some processing which I cant seem to get easily 
over-the-counter from pig.
These are NTILE() /rank() operations available in oracle.

While I am trying to write a UDF, that is not working out too well for me yet.. 

I have a ntile(n) over (partititon by x, y, z order by a desc, b desc) 
operation to be done in pig scripts.
Is there a default function in pig scripting which can do this?

For example, lets consider a simple example at
So here, how would we ideally substitute NTILE() with? any pig counterpart 

SELECT last_name, salary, NTILE(4) OVER (ORDER BY salary DESC) 
   AS quartile FROM employees
   WHERE department_id = 100;
LAST_NAME                     SALARY   QUARTILE
------------------------- ---------- ----------
Greenberg                      12000          1
Faviet                          9000          1
Chen                            8200          2
Urman                           7800          2
Sciarra                         7700          3
Popp                            6900          4
In real case, i have ntile over multiple columns, so ideal way to find 
histograms/boundary/spitting out the bucket number is needed.

Similarly a pig function is required for rank() over(partition by a,b,c order 
by d desc) as e

Please let me know soon.

Thanks & Regards,

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

Reply via email to