本文主要是介绍Spark开窗函数之ROW,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Spark 1.5.x版本以后,在Spark SQL和DataFrame中引入了开窗函数,其中比较常用的开窗函数就是row_number 该函数的作用是根据表中字段进行分组,然后根据表中的字段排序;其实就是根据其排序顺序,给组中的每条记录添 加一个序号;且每组的序号都是从1开始,可利用它的这个特性进行分组取top-n。
比如,A表关联B表,2个表关联的字段是PO_NO,现在发现B表数据重复,只能随机取一笔,就可以这样做:
select ph.*, pl.responsible_department_code
from table_a ph
left join (select * from (select po_no,responsible_department_code,row_number() over(partition by po_no order by po_no) row_numfrom table_b) twhere t.row_num = 1) pl
on ph.po_no = pl.po_no
这篇关于Spark开窗函数之ROW的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!