package com.shujia.sqlimport org.apache.spark.sql.expressions.Window
import org.apache.spark.sql.{DataFrame, SparkSession}object Demo06SparkOnHive {def main(args: Array[String]): Unit = {/*** 通过enableHiveSupport()可以开启Hive的支持* 需要在pom文件中加入spark-hive的依赖* <dependency>* <groupId>org.apache.spark</groupId>* <artifactId>spark-hive_2.11</artifactId>* <version>2.4.5</version>* </dependency>* 需要启动hive的metastore* hive --service metastore**/val spark: SparkSession = SparkSession.builder().appName("Demo06HiveOnSpark").master("local").enableHiveSupport() // 开启Hive的支持.config("spark.sql.shuffle.partitions", 2) // 默认200.getOrCreate()import org.apache.spark.sql.functions._import spark.implicits._spark.sql("show databases").show()spark.sql("show tables").show()spark.sql("use stu_spark").show()spark.sql("show tables").show()// 统计每个科目排名前十的学生  分组取topNspark.sql("""|select  t1.student_id|        ,t1.cource_id|        ,t1.sco|        ,t1.rn|from (|        select  student_id|                ,cource_id|                ,sco|                ,row_number() over(partition by cource_id order by sco desc) as rn|        from score|) t1 where rn<=10|""".stripMargin).show()// DSLval scoDF: DataFrame = spark.table("score")scoDF.select($"student_id", $"cource_id", $"sco",row_number() over Window.partitionBy($"cource_id").orderBy($"sco".desc) as "rn").where($"rn" <= 10).show()}
}
+------------+
|databaseName|
+------------+
|     default|
|         stu|
|   stu_spark|
|       test1|
|   testsqoop|
+------------++--------+---------------+-----------+
|database|      tableName|isTemporary|
+--------+---------------+-----------+
| default|ods_yiqing_data|      false|
| default|        student|      false|
| default| students_hbase|      false|
+--------+---------------+-----------+++
||
++
+++---------+---------+-----------+
| database|tableName|isTemporary|
+---------+---------+-----------+
|stu_spark|    score|      false|
|stu_spark|  student|      false|
+---------+---------+-----------++----------+---------+---+---+
|student_id|cource_id|sco| rn|
+----------+---------+---+---+
|1500100007|  1000002|149|  1|
|1500100080|  1000002|149|  2|
|1500100154|  1000002|149|  3|
|1500100206|  1000002|149|  4|
|1500100298|  1000002|149|  5|
|1500100300|  1000002|149|  6|
|1500100547|  1000002|149|  7|
|1500100599|  1000002|149|  8|
|1500100641|  1000002|149|  9|
|1500100679|  1000002|149| 10|
|1500100208|  1000003|149|  1|
|1500100572|  1000003|149|  2|
|1500100616|  1000003|149|  3|
|1500100776|  1000003|149|  4|
|1500100867|  1000003|149|  5|
|1500100871|  1000003|149|  6|
|1500100911|  1000003|149|  7|
|1500100072|  1000003|148|  8|
|1500100645|  1000003|148|  9|
|1500100725|  1000003|148| 10|
+----------+---------+---+---+
only showing top 20 rows+----------+---------+---+---+
|student_id|cource_id|sco| rn|
+----------+---------+---+---+
|1500100007|  1000002|149|  1|
|1500100080|  1000002|149|  2|
|1500100154|  1000002|149|  3|
|1500100206|  1000002|149|  4|
|1500100298|  1000002|149|  5|
|1500100300|  1000002|149|  6|
|1500100547|  1000002|149|  7|
|1500100599|  1000002|149|  8|
|1500100641|  1000002|149|  9|
|1500100679|  1000002|149| 10|
|1500100208|  1000003|149|  1|
|1500100572|  1000003|149|  2|
|1500100616|  1000003|149|  3|
|1500100776|  1000003|149|  4|
|1500100867|  1000003|149|  5|
|1500100871|  1000003|149|  6|
|1500100911|  1000003|149|  7|
|1500100072|  1000003|148|  8|
|1500100645|  1000003|148|  9|
|1500100725|  1000003|148| 10|
+----------+---------+---+---+
only showing top 20 rows

SparkOnHive相关推荐

  1. Spark基础知识(个人总结)

    声明: 1. 本文为我的个人复习总结, 并非那种从零基础开始普及知识 内容详细全面, 言辞官方的文章               2. 由于是个人总结, 所以用最精简的话语来写文章           ...

  2. 惊了!10万字的Spark全文!

    Hello,大家好,这里是857技术社区,我是社区创始人之一,以后会持续给大家更新大数据各组件的合集内容,路过给个关注吧!!! 今天给大家分享一篇小白易读懂的 Spark万字概念长文,本篇文章追求的是 ...

  3. 离线数仓搭建流程以及遇到的问题Hadoop3.3.1-hive3.1.2-spark 3.3.1

    目录 简言 数仓选型 前期准备 更改三个节点主机名: 新增用户组以及用户: 配置互信 JDK安装 mysql安装 Zookeeper3.8安装 Hadoop3.3.1搭建 Hive3.1.3搭建 Sp ...

  4. hive udf kyroexception unable to find class

    H ive-On-Spark配置成功后,准备试用下Hive UDF是否能在Spark-on-Hive环境下正常使用: set hive.execution.engine=spark; add jar ...

  5. 基于 Spark 的数据分析香港六合彩开奖号码采集官网实践

    引言: Spark是在借鉴了MapReduce之上发展香港六合彩开奖号码采集官网vip7.maltapi.com而来的,继承了其分布式并行计算的优点并改进了MapReduce明显的缺陷.Spark主要 ...

最新文章

  1. iOS 常用的几个第三方库
  2. java实现接收字符串对象并在后台代码中转成list对象
  3. 【C++深度剖析教程19】前置操作符与后置操作符
  4. java replace stringbuilder_Java StringBuilder replace()方法
  5. 2019 十大国产开源项目来势汹汹!
  6. 亚马逊不仅将弃用 Oracle,还要抢 Java 饭碗!
  7. 如何快速上手使用STM32库函数
  8. 宝藏又小众的国画3d材质贴图素材网站分享
  9. 直播软件APP源码,一套完整的直播软件源码解决方案
  10. ubuntu装指定分区_Ubuntu安装时怎样分区
  11. mysql处理微信表情
  12. 人机融合智能时代的人心
  13. 鸿蒙系统手机游戏,鸿蒙系统官网下载手机
  14. PreScan快速入门到精通第三十二讲基于PreScan进行毫米波雷达传感器仿真
  15. Android 8.0 Activity启动流程分析
  16. go 字符转ASCII 字符转成数字
  17. 几种线程安全的Map解析,真香系列
  18. Maven发布轻量二方包
  19. Python中__dict__属性的详解(思维导图版)
  20. uwp windows_如何在Windows 10的UWP游戏中监视FPS

热门文章

  1. 浏览器中本机智能卡支持的案例
  2. win7自带tftp服务器,Win7系统开启TFTP服务器的方法
  3. MSN空间日志发布项灰色解决方法
  4. Tarjan(塔杨)算法详解
  5. echart图表缩放到一定比例(可自定义)后,停止放大,还可以缩小回去
  6. 一本书,带你走出Spring新手村
  7. 分享一个火狐浏览器firefox的所有版本所有平台所有国家的地址,一定要收藏好哦^_^
  8. Matlab绘制幅值谱和相位谱
  9. ArcGIS线图层转面图层后,使面图层拥有线图层的属性
  10. 高通平台开发系列讲解(PCIE篇)MHI (Modem Host Interface)驱动详解