Sql 使用多重分区的清管器
如何将下面的SQL语句翻译成拉丁语Sql 使用多重分区的清管器,sql,hive,apache-pig,Sql,Hive,Apache Pig,如何将下面的SQL语句翻译成拉丁语 select userid, siteid, eventdate, count(*) over(partition by userid, siteid order by eventdate) as c, rank() over (partition by userid, siteid order by eventdate) as rank from views 我看到pig在这里支持windows功能: 我可以计算出第一个分区投影(我想)如下 我不
select userid, siteid, eventdate,
count(*) over(partition by userid, siteid order by eventdate) as c,
rank() over (partition by userid, siteid order by eventdate) as rank
from views
我看到pig在这里支持windows功能:
我可以计算出第一个分区投影(我想)如下
我不清楚如何使用两个multiple-over子句,也不清楚如何从DataFu中投射出最后一步,它将索引添加到包中的每个元组中
在我看来,您的代码可能如下所示:
define Enumerate datafu.pig.bags.Enumerate('1');
A = load views as (userid, siteid, eventdate);
B = group views by (userid, siteid);
C = foreach B {
C1 = order A by eventdate;
generate FLATTEN(group) as (userid, siteid),
FLATTEN(Enumerate(C1.eventdate)) as (eventdate, rank),
COUNT(C1) as count;
}
dump C;
或
define Enumerate datafu.pig.bags.Enumerate('1');
A = load views as (userid, siteid, eventdate);
B = group views by (userid, siteid);
C = foreach B {
C1 = order A by eventdate;
generate FLATTEN(group) as (userid, siteid),
FLATTEN(Enumerate(C1.eventdate)) as (eventdate, rank),
COUNT(C1) as count;
}
dump C;
define Enumerate datafu.pig.bags.Enumerate('1');
A = load views as (userid, siteid, eventdate);
B = group views by (userid, siteid);
C = foreach B {
C1 = order A by eventdate;
generate FLATTEN(Enumerate(C1)) as (userid, siteid, eventdate, rank),
COUNT(C1) as count;
}
dump C;