08 学生课程分数的Spark SQL分析
读学生课程分数文件chapter4-data01.txt,创建DataFrame。
用DataFrame的操作或SQL语句完成以下数据分析要求,并和用RDD操作的实现进行对比:
- 每个分数+5分。
- 总共有多少学生?
- 总共开设了哪些课程?
- 每个学生选修了多少门课?
- 每门课程有多少个学生选?
- 每门课程大于95分的学生人数?
- Tom选修了几门课?每门课多少分?
- Tom的成绩按分数大小排序。
- Tom的平均分。
- 求每门课的平均分,最高分,最低分。
- 求每门课的选修人数及平均分,精确到2位小数。
- 每门课的不及格人数,通过率
- 结果可视化。
from pyspark.sql.types import IntegerType, StringType, StructField, StructType
fields = [StructField(...), ...]
schema = StructType(fields)
类型:http://spark.apache.org/docs/latest/sql-ref-datatypes.html
from pyspark.sql import Row
data = rdd.map(lambda p: Row(...))
Spark SQL DataFrame 操作
df.show()
df.printSchema()
df.count()
df.head(3)
df.collect()
df[‘name’]
df.name
df.first().asDict()
df.describe().show()
df.distinct()
df.filter(df['age'] > 21).show()
df.groupBy("age").count().show()
df.select('name', df['age‘] + 1).show()
df_scs.groupBy("course").avg('score').show()
df_scs.agg({"score": "mean"}).show()
df_scs.groupBy("course").agg({"score": "mean"}).show()
函数:http://spark.apache.org/docs/2.2.0/api/python/pyspark.sql.html#module-pyspark.sql.functions
08 学生课程分数的Spark SQL分析的更多相关文章
- hive Spark SQL分析窗口函数
Spark1.4发布,支持了窗口分析函数(window functions).在离线平台中,90%以上的离线分析任务都是使用Hive实现,其中必然会使用很多窗口分析函数,如果SparkSQL支持窗口分 ...
- Spark SQL大数据处理并写入Elasticsearch
SparkSQL(Spark用于处理结构化数据的模块) 通过SparkSQL导入的数据可以来自MySQL数据库.Json数据.Csv数据等,通过load这些数据可以对其做一系列计算 下面通过程序代码来 ...
- 小菜菜mysql练习解读分析1——查询" 01 "课程比" 02 "课程成绩高的学生的信息及课程分数
查询" 01 "课程比" 02 "课程成绩高的学生的信息及课程分数 好的,第一道题,刚开始做,就栽了个跟头,爽歪歪,至于怎么栽跟头的 ——需要分析题目,查询的是 ...
- 大数据学习day26----hive01----1hive的简介 2 hive的安装(hive的两种连接方式,后台启动,标准输出,错误输出)3. 数据库的基本操作 4. 建表(内部表和外部表的创建以及应用场景,数据导入,学生、分数sql练习)5.分区表 6加载数据的方式
1. hive的简介(具体见文档) Hive是分析处理结构化数据的工具 本质:将hive sql转化成MapReduce程序或者spark程序 Hive处理的数据一般存储在HDFS上,其分析数据底 ...
- Spark SQL慕课网日志分析(1)--系列软件(单机)安装配置使用
来源: 慕课网 Spark SQL慕课网日志分析_大数据实战 目标: spark系列软件的伪分布式的安装.配置.编译 spark的使用 系统: mac 10.13.3 /ubuntu 16.06,两个 ...
- Spark SQL概念学习系列之Spark SQL 架构分析(四)
Spark SQL 与传统 DBMS 的查询优化器 + 执行器的架构较为类似,只不过其执行器是在分布式环境中实现,并采用的 Spark 作为执行引擎. Spark SQL 的查询优化是Catalyst ...
- Spark SQL 源代码分析之 In-Memory Columnar Storage 之 in-memory query
/** Spark SQL源代码分析系列文章*/ 前面讲到了Spark SQL In-Memory Columnar Storage的存储结构是基于列存储的. 那么基于以上存储结构,我们查询cache ...
- Spark SQL Catalyst源代码分析之TreeNode Library
/** Spark SQL源代码分析系列文章*/ 前几篇文章介绍了Spark SQL的Catalyst的核心执行流程.SqlParser,和Analyzer,本来打算直接写Optimizer的,可是发 ...
- Spark SQL Catalyst源代码分析Optimizer
/** Spark SQL源代码分析系列*/ 前几篇文章介绍了Spark SQL的Catalyst的核心运行流程.SqlParser,和Analyzer 以及核心类库TreeNode,本文将具体解说S ...
- Spark SQL 源代码分析系列
从决定写Spark SQL文章的源代码分析,到现在一个月的时间,一个又一个几乎相同的结束很快,在这里也做了一个综合指数,方便阅读,下面是读取顺序 :) 第一章 Spark SQL源代码分析之核心流程 ...
随机推荐
- @Async 注解的使用
1.@Async介绍 在Spring中,基于@Async标注的方法,称之为异步方法:这些方法将在执行的时候,将会在独立的线程中被执行,调用者无需等待它的完成,即可继续其他的操作 例如, 在某个调用中, ...
- Drift Programming | 漂移编程 | 哲学编程 | 架构设计 | TDD |DDD |Microservice
- MargeSort
归并排序(Merge Sort)是建立在归并操作上的一种有效,稳定的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用.将已有序的子序列合并,得到完全有序的序列: ...
- 【ubuntu20 】主机,虚拟机ubuntu,开发板三者的ping通
1.主机有线网卡设为静态ip,步骤如图 2.开发板运行的linux设为静态IP 修改文件 vi /etc/network/interfaces # Configure Loopback auto l ...
- 网线接口调试,Android ADB网络调试!
ADB网络调试,网线接口调试 没有USB接口,照样可以调试,可通过网线接口调试步骤! 一.第一步连接WIFI 查看wifi 的IP win+R 键 打开运行 ,输入cmd 二.输入ipc ...
- NSQ(7)-nsq存在的问题
nsq存在的缺陷 部署的难度 nsq提供了一种消费者端进行服务发现的模型,所以无需告诉消费者去哪寻找对于的主题(Topic)在哪个nsqd实例上. 然而,它并没有提供一种方案去解决一个生产者应 ...
- CToolsDetachBehaviors
CTools dispatches the event "CToolsDetachBehaviors" when the modal gets closed. Careful th ...
- Nucmer+LINKVIEW实现序列水平的共线性分析
https://www.cnblogs.com/johnsonzzz/p/15151634.html https://github.com/YangJianshun/LINKVIEW 可以绘制两个基因 ...
- List<Object>转为对象
List<Object> list = new ArrayList<>(); List<BMSQ> bmsqList = (List<BMSQ>)(Li ...
- Vulnhub 靶场 DIGITALWORLD.LOCAL: SNAKEOIL
Vulnhub 靶场 DIGITALWORLD.LOCAL: SNAKEOIL 前期准备 靶机地址:https://www.vulnhub.com/entry/digitalworldlocal-sn ...