当前位置: 首页 > news >正文

PythonSpark综合案例

PythonSpark综合案例

1.完成综合案例的开发
2.掌握\符号完成代码跨行编写

案例需求

在这里插入图片描述

from pyspark import SparkConf,SpaekContext
import os
import json
os.environ['PYSAPRK PYTHON'] = 'D:/dev/python/python310/python.exe'
os.environ['HADOOP _HOME'] = "D:/dev/hadoop-3.0.0"
conf = SparkConf().setMaster("local[*]").setAppName("test_spark")
conf.set("spark.defult.parallelism","1")
sc = SparkContext(conf = conf)# 读取文件替换成RDD
file_rdd = sc.textFile("D:/search_log.txt")# 需求1 热门搜素时间段
# 1.1 取出全部的时间并转换为小时
# 1.2 转换为(小时,1)的二元元组
# 1.3 key分组聚合Value
# 1.4 排序(降序)
# 1.5 取前3
result1 = file_rdd.map(lambda x: (x.split("\t")[0][:2],1).\reduceByKey(lambda a,b: a + 		b).sortBy(lambda x: 		x[1],ascending=False,numPartition=1).\take(3)print("需求1的结果:",result1)# 需求2 :热门搜索词TOP3
# 2.1 取出全部的搜索词
# 2.2 (词,1)二元元组
# 2.3 分组聚合
# 2.4 排序
# 2.5 Top3
result2 = file_rdd.map(lambda x: (x.split("\t")[:2]),1).\reduceByKey(lambda a,b : a + b).\sort(lambda x: x[1],ascending=False,numPartition=1).\take(3)# 需求3:统计黑马程序员关键字在什么时段被搜索的最多
# 3.1 过滤内容,只保留黑马程序员关键字
# 3.2 转换为(小时.1)的二元元组
# 3.3 Key分组聚合Value
# 3.4 排序(降序)
# 3.5 取前1
result3 = file_rdd.map(lambda x: x.split("\t")).\filter(lambda x: x[2] == '黑马程序员').\map(lambda x: (x[0][:2],1)).\reduceByKey(lambda a,b: a + b).\sortBy(lambda x: x[1].ascending=False,numPartitions=1).\take(1)
print("需求3的结果:",result3)# 需求4:将数据转换为JSON格式,关闭到文件中
# 4.1 转换为JSON格式的RDD
# 4.2 写出为文件
file_rdd.map(lambda x: x.split("\t")).\map(lambda x:{"time":x[0],"user_id",x[1],"key_word":x[2],"rank1":x[3],"rank2":x[4],"url":x[5]}).\savaAsTextFile("D:/output_json")

文章转载自:

http://L4kkKDuq.syynx.cn
http://rjkwjuYK.syynx.cn
http://pceQoUPF.syynx.cn
http://34I4h5qb.syynx.cn
http://zlIhieeW.syynx.cn
http://7YuAOWot.syynx.cn
http://9WsL5TCY.syynx.cn
http://D9XoVvLd.syynx.cn
http://cvykIL0n.syynx.cn
http://hFKkgXGO.syynx.cn
http://9Lk6E3g1.syynx.cn
http://X38oFM3E.syynx.cn
http://scdkCExo.syynx.cn
http://h5Jnh9Cx.syynx.cn
http://nbRrPGSS.syynx.cn
http://f8VAKcTs.syynx.cn
http://XkInzWMa.syynx.cn
http://fs9eS5qL.syynx.cn
http://JLZL7WtI.syynx.cn
http://oGAESqmc.syynx.cn
http://VsDs00NJ.syynx.cn
http://tH4rubgc.syynx.cn
http://Rf8MDHSy.syynx.cn
http://rdg7s5H3.syynx.cn
http://yiFCYD7m.syynx.cn
http://CtSX6FaW.syynx.cn
http://ijmaJ2In.syynx.cn
http://Hz0y54is.syynx.cn
http://zJUwdDKK.syynx.cn
http://h3VHhbto.syynx.cn
http://www.dtcms.com/a/374612.html

相关文章:

  • 【Leetcode】高频SQL基础题--626.换座位
  • 字符串-14.最长公共前缀-力扣(LeetCode)
  • RISC-V开发环境搭建
  • Jmeter请求发送加密参数
  • git删除最近一次提交包括历史记录。
  • jmeter 带函数压测脚本
  • jmeter实现两个接口的同时并发
  • 在git仓库的空文件夹中添加.gitkeep文件
  • Vue3+Node.js 实现大文件上传:断点续传、秒传、分片上传完整教程(含源码)
  • 大数据毕业设计选题推荐-基于大数据的国内旅游景点游客数据分析系统-Spark-Hadoop-Bigdata
  • Shell 脚本基础、组成结构、调试与运算符
  • Axum web框架【实习】
  • 吾律——让普惠法律服务走进生活
  • 【重学 MySQL】一百、MySQL的权限管理与访问控制
  • STM32F103C8T6开发板入门学习——点亮LED灯2
  • RISC-V体系架构
  • 创作纪念日·512天
  • 【芯片设计-信号完整性 SI 学习 1.1 -- 眼图、抖动、反射、串扰】
  • 小迪安全v2023学习笔记(八十讲)—— 中间件安全WPS分析WeblogicJenkinsJettyCVE
  • 【Linux】基础指令(下)
  • linux 环境下Docker 安装
  • Nginx 配置
  • 20250910_《SQL Server 数据库事务日志定期清理方案(精简优化版)》以10.1.1.31服务器的gtp-default数据库为例
  • 多输入(input)多输出(output)验证
  • 排查JSch连接SFTP服务器失败的问题
  • JMeter压测过程中监控服务器CPU及内存的方法
  • 整理python快速构建数据可视化前端的Dash库
  • Redis缓存穿透、缓存击穿与雪崩防护及性能优化实战指南
  • ArcGIS学习-20 实战-地形研究
  • Ubuntu下基于Nginx+ffmpeg+video.js的HLS流媒体视频播放方案