Impala的分析函数(基于impala2.12)
Posted 格格巫 MMQ!!
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Impala的分析函数(基于impala2.12)相关的知识,希望对你有一定的参考价值。
分析函数又称为开窗函数,是一种特殊的内置函数。分析函数不会仅限于对每个group by的分组产生一个结果,它操作的是一个窗口(window),输入的行是排序和分组的,可以通过over()语句使用灵活的条件。impala的分析函数是从impala2.0.0开始添加的。分析函数经常被用于金融和科学领域,用来分析趋势、离群点以及大数据集的分桶分析。
1.over从句
当调用分析函数时,比如LEAD(),RANK()以及FIRST_VALUE,需要使用OVER从句。当调用聚合函数时使用了OVER从句,比如MAX(),COUNT()或者SUM(),将被视为分析函数。
语法
function(args) OVER([partition_by_clause] [order_by_clause [window_clause]])
partition_by_clause ::= PARTITION BY expr [, expr …]
order_by_clause ::= ORDER BY expr [ASC | DESC] [NULLS FIRST
window_clause: See Window Clause
PARTITION BY从句
PARTITION BY 从句与GROUP BY从句类似,按照一列或者多列相同的值,将数据分成不同的组,这个逻辑上的组,称之为分区。但是,请注意以下限制,这些限制特别适用于涉及分区表的分析函数调用。当查询涉及到分析函数和分区表时,仅对分析函数调用的partition by子句中命名的列执行分区裁剪。比如,当一个分析函数查询带有WHERE year=2016的分区裁剪条件,只有在PARTITION BY 从句中指定year才可以裁剪掉其他的分区数据,比如 OVER (PARTITION BY year,other_columns
oth
以上是关于Impala的分析函数(基于impala2.12)的主要内容,如果未能解决你的问题,请参考以下文章
新书放送:开源大数据分析 引擎Impala实战 / 演讲名篇鉴赏辞典