Python实现学生信息管理系统
Python实现学生信息管理系统
学生信息管理系统是每个语言入门的第一个基础项目吧算是,主要业务逻辑就是增删改查(curd),并将学生信息通过文件进行读取,然后保存,这里使用student_info.txt文本文档进行保存,其实使用数据库保存也是一样的。
为了使项目具有更高的可读性,本项目采用模块化设计,将每种功能(curd功能)通过函数封装起来。
1,打印主菜单menu()
通过menu()函数实现,具体代码如下:
12345678910def menu(): print('-' * 20) print('欢迎登录学员管理系统') print('1: 添加学员') print('2: 删除学员') print('3: 修改学员信息') print('4: 查询学员信息') print('5: 显示所有学员信息') print('6: 退出系统') print( ...
【SparkCore】SparkTheory理论
Spark容错机制
两个问题引入Spark容错机制
问题1:计算机在存储数据的过程中如何保证数据的安全?
a. 内存快照:将内存中所有数据拍摄一个快照,存储在文件中,读取快照文件恢复内存中数据
b. 操作日志:将内存变化操作日志追加记录在一个文件中,下一次读取文件对内存重新操作
HDFS:edits文件,保证HDFS内存元数据的安全的
c. 副本机制:将数据构建多份冗余副本
HDFS:副本机制,保证HDFS数据的安全
d. 依赖关系:每份数据保留与其他数据之间的一个转换关系
问题2:Spark中RDD的数据如何保证数据的安全?
每个RDD在构建数据时,会根据自己来源一步步倒推到数据来源,然后再一步步开始构建RDD数据
当RDD的数据被触发调用时,就会根据RDD的血缘关系层层构建RDD的数据
如果在计算过程中,RDD的数据丢失,就会通过依赖关系重新构建,彻底保证了RDD的数据安全
但是: 如果一个RDD被触发多次,这个RDD就会按照依赖关系被构建多次,性能相对较差,怎么解决?
Persist缓存机制
问题:RDD依赖血缘机制保证数据安全,那每调用一次RDD都要 ...
【SparkCore】搜狗&百度日志分析
搜狗日志分析数据格式1搜索时间 用户ID [查询词] 该URL在返回结果中的排名 用户点击的顺序号 用户点击的URL
需求分析
首先要做的是数据的清洗和转换
过滤掉无效的数据
无效的数据是读取的数据的长度小于6就排除(通过filter算子实现)
筛选出有用的字段
筛选出的字段方便我们后续的分析
需求1:
统计热门搜索词Top10【出现次数最多前10个==搜索词==】
预期结果:(搜索词,出现次数)
实现思路:
1, 读取数据, 数据清洗
2, 将搜索内容通过分词器分解(每个词作为一个独立的单元)
3, 对每一个词作标记,出现一次
4, 通过reduceByKey算子计算每个词出现的次数
需求2
统计所有用户所有搜索中最大搜索次数、最小搜索次数、平均搜索次数
预期结果:最大搜索次数、最小搜索次数、平均搜索次数
实现思路:
1, 读取数据, 数据清洗
2, 构建(userid, 查询词设为1)kv键值对格式的数据
3, 进行reduceByKey聚合操作,得到每个用户的总的搜索次数
4, 比较所有用户, ...
【SparkCore】RDD算子
Retrospect转换算子和行为算子的区别
1,会不会触发job任务的执行: 转换算子不会触发job的执行,行为算子会
2, 生成新的RDD: 转换算子会从原有的RDD中产生新的RDD
网络日志案例
我一直保持只有做题才能真正检验你自己的水平, 哪怕你平时不听课,但老师布置的作业,以及上课的题目你都会.那就OK.
下面是一个案例, 能独立做出来也是对自己的一个检验罢.
PV,UV概念
pv:网页访问量,每访问一个页面,则就算一个pv
uv:独立访客数,每来一个不同的用户,就算一个uv
举例1234567891011121001 2023-07-15 08:15 a.html1001 2023-07-15 09:15 b.html1001 2023-07-15 10:15 c.html1001 2023-07-15 11:15 d.html1002 2023-07-15 08:15 a.html1002 2023-07-15 09:15 b.html1002 2023-07-15 10:15 c.html1002 2023-07-15 11:15 ...
【Spark】PySpark刷题本(二)
数据准备12345678910111213研发部,1,乔峰,男,20,5000研发部,2,段誉,男,21,2800研发部,3,虚竹,男,23,8000研发部,4,阿紫,女,18,4000销售部,5,扫地僧,男,85,9000销售部,6,李秋水,女,33,4500销售部,7,鸠摩智,男,50,3900销售部,8,天山童姥,女,60,8900销售部,9,慕容博,男,58,3400人事部,10,丁春秋,男,90,7000人事部,11,王语嫣,女,50,7700人事部,12,阿朱,女,43,5500人事部,13,无崖子,男,51,8800
题目123456789练习题目:(1) 读入emp.txt文档,生成RDD(2) 获得年龄大于50的员工(3) 获得人事部性别为男的员工(4) 获取比无崖子薪资高的员工信息(5) 获得整个公司薪资最高的员工名字(6) 获得每个部门的员工人数,并降序排序(7) 获得每个部门的平均薪资(8) 获得每个部门的最高薪水
答案1234567891011121314151617181920212223242526272829303132333435363738394 ...
【SparkCore】SparkOnYarn及RDD理论
Retrospect
书接上回,这次说说StandAlone的核心原理, 以及SparkOnYarn的执行流程(原理的说). 还有RDD算子的特性以及创建及分类
StandAlone原理
集群角色, 不管有没有任务运行,集群永远都有以下两个角色
Master:管理,分配资源,监控worker的健康状况(相当于包工头)
Worker: 分配资源,执行任务(相当于组长),向Master定时发送心跳包
Task: 执行任务的(进程)相当于工人
Driver
1、每执行一个任务,Spark会自动启动一个Driver进程,类似于Yarn中AppMaster,负责整个任务执行的监控.当你启动10个Spark任务,系统就会启动10个Driver
2、Driver进程本身由于需要对整个任务进行管理,它本身也需要一定的资源,比如内存和CPU
Executor
1、每当你执行一个Spark任务,Spark需要启动若干个Executor进程,Executor用来管理执行执行任务的Task线程
2、Executor创建完成之后需要向Dirver进行注册
3、当执行任务时,需要多少个Executo ...
【Spark】Spark本地与StandAlone模式
AnacondaAnaconda是什么
1、Anaconda是一个工具包,里边包含了几百个开发工具,其中也包含Python2、Anaconda还可以模拟多个虚拟环境,在该虚拟环境中可以安装不同版本的软件,多个虚拟环境彼此独立,以后你可以自由选择使用哪一个虚拟环境3、你安装了Anaconda之后,自动会给你创建一个基础环境,名字为base
Anaconda常用命令
查看当前服务器安装的所有虚拟环境 conda env list
创建新的虚拟环境conda create -n 虚拟环境的名字 python=版本
切换虚拟环境conda activate 虚拟环境名称
退出虚拟环境-进入上一个虚拟环境conda deactivate
删除某个虚拟环境conda remove -n 虚拟环境名称 —all
查看虚拟环境中安装的软件包conda list
卸载软件包conda uninstall 包名 或pip uninstall 包名
Demo123456789101112131415161718192021222324252627282930313233343536373839404 ...
【Spark】初识PySpark
初识Spark按照知识点的重要性由高到低的顺序来进行归纳
分布式和集群这个东西一下让你说,你不一定能说的出来,概括一下吧
分布式: 强调的是将一个系统的资源由单机分散到多台机器上,一个字拆
强调多台机器做一样的事情
Spark模块
1、SparkCore:是Spark框架的核心,其他所有组件都基于SparkCore2、SparkSQL : 使用Spark + SQL语言来对大数据进行离线分析3、Spark Structed Streaming : Spark的实时部分,需要结合Kafka4、MLlib:Spark的机器学习库5:Graph:Spark的图计算
集群部署模式用的最多的就是Spark On Yarn模式 : Spark计算引擎 + Yarn调度器
12345678#1、本地模式(单机) 用于测试 #2、集群模式(多机) 了解:StandAlone模式 : Spark计算引擎 + Spark自带的资源调度器 重要:Spark On Yarn模式 : Spark计算引擎 + Yarn调度器 了解:Spark On Messos模式: Spark计算引擎 + Me ...
【Spark】PySpark刷题本(一)
PySpark交互式编程如下chapter2-data1.txt,该数据集包含了某大学计算机系的成绩,数据格式如下所示:
1234567Tom,DataBase,80Tom,Algorithm,50Tom,DataStructure,60Jim,DataBase,90Jim,Algorithm,60Jim,DataStructure,80……
请根据给定的实验数据,在pyspark中通过编程来计算以下内容:
(1)该系总共有多少学生;
(2)该系共开设了多少门课程;
(3)Tom同学的总成绩平均分是多少;
(4)求每名同学的选修的课程门数;
(5)该系DataBase课程共有多少人选修;
(6)各门课程的平均分是多少;
(7)使用累加器计算共有多少人选了DataBase这门课。
Q1-求学生总数: 不管做什么首先需要从某个地方读取到需要处理的数据, Linux本地的路径协议是file://, 而HDFS的路径协议是hdfs://主机名:端口号. 所以第一步是读取文件,第二步是获取每行中的第一列. 第三步是将获取到的数据进行去重操作. 第四步是 ...
【PythonETL】订单数据采集业务
到这里整个ETL全过程已经结束了, 没有很多花里胡哨的东西, 全是干货, 简单做个总结吧!
订单数据采集
业务需求:
1)将采集的订单JSON数据保存到目标数据库中
2)将采集的订单JSON写出到 CSV 文件中
3)采集数据时JSON文件不能重复采集
实现思路:
获取订单文件夹下面有哪些订单JSON文件
查询元数据库表中已经被采集的订单JSON文件,来对比确定要采集新的订单JSON文件
针对待采集的新订单JSON文件,进行数据采集(ETL操作->mysql->csv)
将本次采集的订单JSON文件,记录到元数据库的表中
json模块的使用
json.loads 将JSON字符串数据转换为Python中的数据类型
json.dumps 将python中的数据类型转换为JSON字符串
jsonloads和jsonload的最大区别就是jsonload的参数是一个json文件,而jsonloads的参数是字符串
事务: 注意事务的开启时机以及事务的提交时机,事务的提交时机是一个文件写入完毕,没有出现错误,由此可以判断事务的开启时机元数据: 注意元数据表中的字段(id自 ...
