SparkSQL---开窗函数(java)
来源:互联网 发布:java prototype 编辑:程序博客网 时间:2024/06/05 22:48
package com.spark.sparksql.save;import org.apache.spark.SparkConf;import org.apache.spark.api.java.JavaSparkContext;import org.apache.spark.sql.DataFrame;import org.apache.spark.sql.hive.HiveContext;/* * 开窗函数 */public class RowNumberWindowFunction { public static void main(String[] args) { SparkConf conf = new SparkConf().setAppName("RowNumberWindowFunction"); 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)"); hiveContext.sql("LOAD DATA LOCAL INPATH '/usr/hadoopsoft/spark-1.6.0-bin-hadoop2.4/project/sales.txt' INTO TABLE sales"); // 先说明一下,row_number()开窗函数,它的作用是什么? // 其实,就是给每个分组的数据,按照其排序顺序,打上一个分组内的行号!!!! // 比如说,有一个分组date=20160706,里面看有3数据,11211,11212,11213 // 那么对这个分组的每一行使用row_number()开窗函数以后,这个三行会打上一个组内的行号!!! // 行号是从1开始递增!!! 比如最后结果就是 11211 1, 11212 2, 11213 3 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"); // 将每组排名前3的数据,保存到一个表中 hiveContext.sql("DROP TABLE IF EXISTS top3_sales"); top3SalesDF.saveAsTable("top3_sales"); sc.close(); }}
阅读全文
0 0
- SparkSQL---开窗函数(java)
- 开窗函数
- 开窗函数
- 开窗函数
- SparkSQL---UDF(java)
- SQL--浅析,开窗函数,聚合开窗函数,排序开窗函数。
- 索引、分页、开窗函数
- sql over开窗函数
- sql over开窗函数
- Oracle开窗函数
- sql over开窗函数
- over 开窗函数使用说明
- sql over开窗函数
- 开窗函数简介
- oracle开窗函数
- SQL Server - 开窗函数
- oracle开窗函数over()
- 数据库中的开窗函数
- Apache Spark 内存管理详解
- nio FileChannel中文乱码问题
- 51nod【1344】走格子【水题】
- acm 模板
- 提高PHP效率,不能不看的50个细节
- SparkSQL---开窗函数(java)
- 欢迎使用CSDN-markdown编辑器
- 怎样查看win10下Python安装路径?
- POJ 1195 Mobile phones(二维树状数组)
- 【学习笔记】C# 接口
- linux配置pycharm的mysql
- java事件。
- 常用快捷键
- Unity动画过渡