当我尝试使用 Partition over Hive 时,
Posted
技术标签:
【中文标题】当我尝试使用 Partition over Hive 时,【英文标题】:While I try to use Partition over Hive, 【发布时间】:2013-09-27 01:05:54 【问题描述】:SELECT
prc.user_key,
percentile(P.price, 0.5) OVER (PARTITION BY P.user_key) as median_price
FROM
(
SELECT
vfc.user_key,
vfc.order_id,
MIN(vddo.cc) price
FROM
td_b.mv_a vfc
JOIN
td_b.dim_deal_option vddo
ON vfc.d_key = vddo.d_key
WHERE
vfc.action = 'sale'
GROUP BY vfc.user_key, vfc.order_id
) prc limit 100;
给出错误“FAILED: Parse Error: line 4:13 mismatched input '(' Expecting FROM near 'OVER' in from 子句” 在蜂巢。当我删除百分位数和分区查询工作正常,知道吗?我试过count()而不是百分位数,仍然是同样的错误。
【问题讨论】:
你确定你有足够新的版本吗? 【参考方案1】:百分位/分区行将子查询别名为“P”(P.price 和 P.user_key),但子查询为“prc”。有时错误的别名会抛出该错误
【讨论】:
【参考方案2】:P.Price 和 P.user_key 不存在。
【讨论】:
以上是关于当我尝试使用 Partition over Hive 时,的主要内容,如果未能解决你的问题,请参考以下文章
如何在 over 函数中使用 partition by 和 order by?
使用 sum() over(partition by) 逐一计算行中的值
Row_Number() OVER PARTITION BY 基于列中的值