SparkSql之电影案例SQL编写

  • 需求1:查找电影评分个数超过50,且平均评分较高的前十部电影名称及其对应的平均评分,结果以下面字段结构输出,保存成任意文本格式(txt\csv)或者存储到数据库。
  • 需求2:查找每个电影类别及其对应的平均评分,结果以下面字段结构输出,保存成任意文本格式(txt\csv)或者存储到数据库。
  • 需求3:查找被评分次数较多的前十部电影,结果以下面字段结构输出,保存成任意文本格式(txt\csv)或者存储到数据库。
  • 运行环境准备

需求1:查找电影评分个数超过50,且平均评分较高的前十部电影名称及其对应的平均评分,结果以下面字段结构输出,保存成任意文本格式(txt\csv)或者存储到数据库。

 // 需求1:查找电影评分个数超过50,且平均评分较高的前十部电影名称及其对应的平均评分,val sql1 ="""|select|   r.movieId movie_id, count(r.movieId) rating_num, first(m.title) title, avg(r.rating) as rating_avg,from_unixtime(first(r.timestamp), 'yyyy-MM-dd HH:mm:ss') update_time|from|   ratings r left join movies m|where|   r.movieId=m.movieId|group by|   r.movieId having rating_num > 50 sort by rating_avg desc limit 10|""".stripMargin

需求2:查找每个电影类别及其对应的平均评分,结果以下面字段结构输出,保存成任意文本格式(txt\csv)或者存储到数据库。

val sql2 ="""|select|   first(m.genres) genre, avg(r.rating) rating_avg,from_unixtime(first(r.timestamp), 'yyyy-MM-dd HH:mm:ss') update_time|from|   ratings r left join movies m|where|   r.movieId=m.movieId|group by r.movieId|""".stripMargin

需求3:查找被评分次数较多的前十部电影,结果以下面字段结构输出,保存成任意文本格式(txt\csv)或者存储到数据库。

 val sql3 ="""|select|   r.movieId movie_id, first(m.title) title, count(r.userId) rating_num, from_unixtime(first(r.timestamp), 'yyyy-MM-dd HH:mm:ss') update_time|from|   ratings r left join movies m|where|   r.movieId=m.movieId|group by r.movieId sort by rating_num desc limit 10|""".stripMargin

运行环境准备

  def main(args: Array[String]): Unit = {val conf: SparkConf = new SparkConf().setAppName("exercise2").setMaster("local[*]")val spark: SparkSession = SparkSession.builder().config(conf).getOrCreate()val dfRating: DataFrame = spark.read.option("header", true).csv("exercise2/ratings.csv")  // 自己数据的路径val dfMovie: DataFrame = spark.read.option("header", true).csv("exercise2/movies.csv") // 自己数据的路径dfRating.createOrReplaceTempView("ratings")dfMovie.createOrReplaceTempView("movies")}

SparkSql之电影案例SQL编写相关推荐

  1. 面试之数据库SQL编写实战案例

    好多同学在面试的过程中会碰到关于SQL查询的相关案例,让手写SQL语句,直接蒙蔽的不少哦,下面以几个面试题为例,谈谈SQL的编写,有题有答案,大家可以看看参考一下: 数据库的基本准备: /* Navi ...

  2. 万字归纳总结 | 数据库表设计与SQL编写技巧

    点击上方"朱小厮的博客",选择"设为星标" 后台回复"加群"加入公众号专属技术群 前言 随着移动云平台系统业务不断增长,必然需要对各系统进行 ...

  3. SparkSQL中UDAF案例分析

    SparkSQL中UDAF案例分析 1.统计单词的个数 package com.bynear.spark_sql; import org.apache.spark.sql.Row; import or ...

  4. Oracle DBA的SQL编写技能提升宝典(含SQL资源)

    点击上方"蓝字" 关注我们,享更多干货! 8月5日 ,云和恩墨高级技术顾问范计杰老师,在墨天轮上分享了<经典知识库:Oracle DBA的SQL编写技能提升宝典>的直播 ...

  5. 5日直播预告丨Oracle DBA的SQL编写技能提升宝典

    经典知识库:Oracle DBA的SQL编写技能提升宝典 -8月5日20:00 运维DBA在工作中通常直接使用别人写好的脚本,并不擅长编写SQL,但掌握一些SQL编写的能力也是DBA的必备技能,这样才 ...

  6. SQL数据库不用SQL语句能显示全表的内容_MySQL DBA必读:万字归总表设计与SQL编写技巧...

    作者介绍 刘书浩,"移动云"DBA,负责"移动云"业务系统的数据库运维.标准化等工作:擅长MySQL技术领域,熟悉MySQL复制结构.Cluster架构及运维优 ...

  7. MySQL DBA必读:万字归总表设计与SQL编写技巧

    前言 随着移动云平台系统业务不断增长,必然需要对各系统进行更新或者发布新版本,以满足用户的需求.但是在系统更新或者发布新版本时,往往会引起各种的性能隐患,使得系统的稳定性大大降低,这些性能隐患的根本原 ...

  8. mysql 开发规范_专业级的MySQL开发设计规范及SQL编写规范

    在团队开发过程中为了项目的稳定,代码的高效,管理的便捷制定内部种开发设计规范是必不可少的, 这里分享一份我们定义MySQL开发设计规范包括表设计规范,字段设计规范,SQL编写规范 数据库对象命名规范 ...

  9. 大罗讲SQL:如何优雅的进行SQL编写?

    墨墨导读:SQL可以写的很笨重,也可以写的很优雅,本文从一个简单的查询v$SQL/DBA_HIST_SQLSTAT的语句开始,介绍几种常用的优雅SQL编写方式. 在分析v$sql 或者 dba_his ...

最新文章

  1. 集群理论讲解(续三)
  2. 网站推广——网站推广专员建设网站是选择新域名还是老域名?
  3. [转]symbian基本类型转换
  4. Armv8-A 架构概述
  5. java异步处理同步化_java 异步查询转同步多种实现方式:循环等待,CountDownLatch,Spring EventListener,超时处理和空循环性能优化...
  6. Hibernate dbcp连接池使用方法
  7. ChainerCV︱堪比Opencv--深度学习工具库(Faster R-CNN、SSD 和 SegNet)
  8. 声压级和灵敏度的关系
  9. (转帖)無號數及有號數的乘加運算電路設計(Verilog)
  10. 转载:c# serialport类 串口通信 hello world
  11. 倒排索引Inverted index
  12. 程序员面试宝典(一) - 流程概览
  13. PC版免费京东全民营业自动化做任务脚本(多号版)
  14. 做程序界中的死神,锻造合适的斩魂刀
  15. 【音乐】如果历史是一群喵主题曲钢琴弹奏
  16. 最简单的uefi和legacy介绍和举例(可能吧?)
  17. python阶乘函数_python 阶乘函数
  18. AI|优必选称准备IPO 此前公司机器人曾登上春晚舞台
  19. 计网必会:P2P体系结构,BitTorrent,DHT,分布式散列表
  20. EtherNet/IP

热门文章

  1. 黑客30秒攻破苹果iOS系统夺得大赛冠军
  2. win10计算机亮度在哪里调,win10电脑怎么调亮度
  3. 44session绑定解绑、钝化活化
  4. 计算机常用术语cae是指,《计算机文化基础》练习题
  5. 每个程序员都应该了解的内存知识(2)-CPU caches
  6. 世上本没有对错,看问题的角度不同,答案不同而已,我们应该学会常常用别人的角度看世界,多一分宽容,多一分理解,多一分求同存异。
  7. Java高级——OutOfMemoryError和StackOverflowError
  8. 玩家就是宇宙,而你就是那个玩家——谈Minecraft
  9. ip-guard文档加密后无小锁标志
  10. ServerSocket通过构造方法绑定端口