Spark SQL 开窗函数row_number的使用
Spark SQL 开窗函数row_number的使用
华为,手机,450
苹果,手机,1000
三星,手机,2500
小米Pro,笔记本,1500
苹果Pro,笔记本,2000
三星Pro,笔记本,4100
华为ProX,笔记本,200
华硕,笔记本,10000
苹果,平板电脑,100
三星,平板电脑,200
华为,平板电脑,300
中兴,平板电脑,400
package com.bynear.spark_sql; import org.apache.spark.SparkConf; import org.apache.spark.api.java.JavaSparkContext; import org.apache.spark.sql.DataFrame; import org.apache.spark.sql.Row; import org.apache.spark.sql.SaveMode; import org.apache.spark.sql.hive.HiveContext; import java.util.List; public class RowNumberWindowFunction {public static void main(String[] args) {SparkConf conf = new SparkConf(); JavaSparkContext sc = new JavaSparkContext(conf); HiveContext hiveContext = new HiveContext(sc.sc()); // 创建销售额表 sales hiveContext.sql("drop table if exists sales"); // hiveContext.sql("create table if not exists sales (product string, category string, revenue BIGINT) // row format delimited\\n\" +\n" + // " \" fields terminated by ','"); hiveContext.sql("create table if not exists sales (product string, category string, revenue bigint) row format delimited fields terminated by ',' " ); hiveContext.sql("load data inpath" +" 'hdfs://Spark01:9000/zjs/sales.txt' into table sales "); // DataFrame top3SalesDF = hiveContext.sql("select product,category,revenue from (select product, category, revenue, row_number() over (partition by category order by revenue DESC ) rank from sales ) tmp_sales where rank <=3"); hiveContext.sql("drop table if exists top_sales"); hiveContext.sql("create table top_sales (product string, category string, revenue bigint) "); top3SalesDF.write().mode(SaveMode.Append).insertInto("top_sales"); List<Row> rows = top3SalesDF.javaRDD().collect(); for (Row row : rows) {System.out.println(row); }top3SalesDF.write().format("json").save("hdfs://Spark01:9000/zjs/JSON"); sc.close(); } }
开窗函数格式:* 【 row_number() over (partition by XXX order by XXX) as rank】//起个别名* 注意:rank 从1开始
[华为,平板电脑,300]
[三星,平板电脑,200]
[三星,手机,2500]
[苹果,手机,1000]
[华为,手机,450]
[华硕,笔记本,10000]
[三星Pro,笔记本,4100]
[苹果Pro,笔记本,2000]
Spark SQL 开窗函数row_number的使用相关推荐
- mysql开窗函数_魔幻的SQL开窗函数,为您打开进阶高手的一扇天窗
经常写SQL脚本的朋友,通常会有一种迷之自信,似乎各种问题都有自己的一套解决方案.时间长了,人的思维可能会逐渐固化.思维固化能提高工作效率,但从某些角度看是很可怕的,我们也同时会失去接受新知识的内在动 ...
- spark SQL自定义函数:
spark SQL 自定义函数: 自定义函数: 第一种: U D F (用户自定义函数)函数 特点: 一对一的关系,输入一个值以后输出一个值 (一进一出) 大部分的内置函数都是U D F函数 ...
- SQL开窗函数之前后函数(LEAD、LAG)
开窗函数 当我们需要进行一些比较复杂的子查询时,聚合函数就会非常的麻烦,因此可以使用开窗函数进行分组再运用函数查询.窗口函数既可以显示聚集前的数据,也可以显示聚集后的数据,可以在同一行中返回基础行的列 ...
- SQL开窗函数(窗口函数)详解
一.什么是开窗函数 开窗函数/分析函数:over() 开窗函数也叫分析函数,有两类:一类是聚合开窗函数,一类是排序开窗函数. 开窗函数的调用格式为: 函数名(列名) OVER(partition by ...
- sql开窗函数及编程练习题
今天做题碰见了个没见过的开窗函数 什么是开窗函数 开窗函数也叫分析函数,有两类:一类是聚合开窗函数,一类是排序开窗函数. 聚合开窗函数就是我们常见的avg().count().sum()等.SQL 标 ...
- SQL SERVER 函数ROW_NUMBER() 应用
应用场景: 1.业务要求SQL查询结果中输出含有"序号"."行号". 2.数据表中某个空白字段需要用流水号填充. 以上场景时,可以使用SQL SERVER 的函 ...
- Hive SQL开窗函数详解
Hive 开窗函数 group by 是分组函数,一组出来一个数据 over() 开窗,针对每一条数据,都有一个独立的组 mk 3 jk 3 mk 3 select orderdate,cost,su ...
- SQL 开窗函数使用
好多次笔试面试的题都考到开窗函数,若对开窗函数不了解,真的吃了好大的亏,今天花点时间整理一下. 此文章整理的知识点部分来自:https://www.cnblogs.com/lihaoyang/p/67 ...
- Spark SQL自定义函数_第五章
1.自定义函数分类 类似于hive当中的自定义函数, spark同样可以使用自定义函数来实现新的功能. spark中的自定义函数有如下3类 1.UDF(User-Defined-Function) 输 ...
最新文章
- fastReport 随记
- oracle sql删除job,修改Oracle的Job Scheduler 日志级别及删除运行日志
- 【Python之os模块】使用
- 美国域名总量跌至7971万:4月上旬降幅缩小32.4%
- python 并发编程 多线程 event
- jquery复制粘贴
- cesium 构建天空盒
- VS2010提示asp.net v4.0 尚未在web服务器上注册
- linux培训哪家好?Linux520内部培训教程
- swiper 插件里面嵌套可滚动内容
- 计算机用什么命令调取共享记录,只需一串代码命令就可以获取你的电脑所有的无线网历史连接记录?...
- php crc16计算,如何在PHP HEX中计算CRC16 CCITT?
- 一个不错的SQLserver 数据库比较软件
- 解决phpmyadmin 访问卡慢等问题
- 国庆节,一天开发一个小程序+Web系统。2.5K到手。【分享开发经验】【收藏起来】
- java 中wav文件格式,Wav音频文件格式详解
- Win11 0x80073cf9 我们这边出了错
- 业内首档程序员真人秀?这不比博人传热血???
- 音乐标签修改 android,mp3标签-mp3标签修改器 安卓版v4.0-PC6安卓网
- 魔都地铁租房的时间和租金测算