python_day13_综合案例

news2024/11/27 21:49:41

在这里插入图片描述

导包准备

from pyspark import SparkConf, SparkContext
import os
import json

os.environ["PYSPARK_PYTHON"] = "D:/dev/python/python3.10.4/python.exe"
conf = SparkConf().setMaster("local[*]").setAppName("test_spark")
sc = SparkContext(conf=conf)

TODO 城市销售额排名

读文件textFile()

file_rdd = sc.textFile("D:/orders.txt")
print(file_rdd.collect())

在这里插入图片描述

去 | ,取出JSON字符串, flatMap()

json_rdd = file_rdd.flatMap(lambda x: x.split("|"))  # 取出JSON字符串
print(json_rdd.collect())

在这里插入图片描述

json转为字典 map()

dict_rdd = json_rdd.map(lambda x: json.loads(x))  # json转为字典
print(dict_rdd.collect())

在这里插入图片描述

取出城市与销售额(str->int)存入元组 map()

city_rdd = dict_rdd.map(lambda x: (x['areaName'], int(x['money'])))  # 取出城市与销售额(str->int)存入元组
print(city_rdd.collect())

在这里插入图片描述

聚合每个城市销售额总量 reduceByKey()

rdd_sale = city_rdd.reduceByKey(lambda a, b: a + b)  # 聚合每个城市销售额总量
print(rdd_sale.collect())

在这里插入图片描述

排序 sortBy()

rdd_sort = rdd_sale.sortBy(lambda x: x[1], ascending=False, numPartitions=1)  # 排序
print(rdd_sort.collect())

在这里插入图片描述

TODO 全部城市有哪些商品品类在销售、

从字典中取出销售类别,再去重 distinct()

category_rdd = dict_rdd.map(lambda x: x['category']).distinct()
print(category_rdd.collect())

在这里插入图片描述

TODO 查看北京市有哪些类别在售卖

过滤其他城市 filter()

Peking_rdd = dict_rdd.filter(lambda x: x["areaName"] == "北京")
Peking_category_rdd = Peking_rdd.map(lambda x: x['category']).distinct()
print(Peking_category_rdd.collect())

在这里插入图片描述

关闭

sc.stop()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/780092.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

生命游戏(力扣)思维 JAVA

根据 百度百科 , 生命游戏 ,简称为 生命 ,是英国数学家约翰何顿康威在 1970 年发明的细胞自动机。 给定一个包含 m n 个格子的面板,每一个格子都可以看成是一个细胞。每个细胞都具有一个初始状态: 1 即为 活细胞 &…

FreeRTOS源码分析-4 SysTick系统时钟详解

目录 1 SysTick初始化 2 SysTick中断服务函数 3 SysTick任务调度 1 SysTick初始化 初始化流程 配置SysTick装载值使能SysTick时钟源 使能SysTick中断 使能SysTick 其中装载值1ms、10ms、100ms都可以,但是不要小于1ms //main.c //--->osKernelStart(); //--…

vue开源基础框架之岗位管理配置及使用

JVS是面向软件开发团队可以快速实现应用的基础开发脚手架,主要定位于企业信息化通用底座,采用微服务分布式框架,提供丰富的基础功能,集成众多业务引擎,它灵活性强,界面化配置对开发者友好,底层容…

机器视觉:工业自动化和智能化的核心技术

机器视觉作为实现工业自动化和智能化的关键核心技术,是人工智能领域发展最迅速的分支之一。它包括四个关键构件:光源、摄像机、图像采集卡和视觉处理软件(集成了AI算法)。其中,图像采集卡是工厂自动化中常用的外购组件…

Java多线程基础复习

文章目录 多线程1.进程进程属性并发和并行虚拟地址空间 2.线程概念线程的创建方式 3.Thread类常见构造方法和属性线程的状态优先级后台线程线程是否存活start和run 4. 线程的一些基本操作线程中断(interrupted)线程等待joincurrentThread(获取当前线程引用&#xff…

安全开发-JS应用原生开发JQuery库Ajax技术加密编码库断点调试逆向分析元素属性操作

文章目录 JS原生开发-文件上传-变量&对象&函数&事件JS导入库开发-登录验证-JQuery库&Ajax技术JS导入库开发-编码加密-逆向调试 JS原生开发-文件上传-变量&对象&函数&事件 1、布置前端页面 2、JS获取提交数据 3、JS对上传格式判断 <script>…

Spring MVC 详解(2)

目录 3. 返回数据的功能 3.1 返回静态页面 3.2 请求转发 VS 请求重定向 前言 上一篇文章已经介绍了 Spring MVC 框架的两个功能&#xff0c;和前端建立连接的功能和从前端获取参数的功能&#xff0c;还有最后一个功能就是 输出数据的功能。 3. 返回数据的功能 返回的数据大致…

2min搞定 mac pycharm新建导入python项目

mac pycharm新建和导入python项目&虚拟环境配置&下载类库 一、通用设置step1 、通过自定义配置&#xff0c;指定默认虚拟环境变量step2、设置虚拟环境和指定默认工作空间step3 、导入或者新建python项目 二、pycharm新建python项目step1、点击新建【file->newProjec…

appscan 应用

HCL appscan是个常见的web app DAST 扫描工具 有企业版和standalone 版本。大家常用的都是单机版本。企业版平台&#xff0c;集成了IAST。 appscan 使用比较简单&#xff0c;基本输入url 账号密码就开扫了。 用了一段时间几点体验 1 还是需要手动explore的&#xff0c;他自…

ShardingSphere分库分表实战之读写分离原理解析

&#x1f680; ShardingSphere &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&…

MFC第十九天 记事本项目功能完善和开发、CTabCtrl类与分页模式开发

文章目录 记事本项目功能完善和开发查找界面的记忆功能 、使用F3快捷键自动向下查找功能 的开发单次替换的算法研究 CFileDialog 构造函数详解 应用另存为时选择编码 &#xff08;三种方案&#xff09;vista 样式文件对话框 bVistaStyle 为TRUE时 1pch.hCApp NotePad.cpp 对编码…

《Docker与持续集成/持续部署:构建高效交付流程,打造敏捷软件交付链》

&#x1f337;&#x1f341; 博主 libin9iOak带您 Go to New World.✨&#x1f341; &#x1f984; 个人主页——libin9iOak的博客&#x1f390; &#x1f433; 《面试题大全》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33…

【算法基础:搜索与图论】3.5 求最小生成树算法(PrimKruskal)

文章目录 最小生成树介绍朴素Prim算法算法思路⭐例题&#xff1a;858. Prim算法求最小生成树 Kruskal算法算法思路⭐例题&#xff1a;859. Kruskal算法求最小生成树 最小生成树介绍 最小生成树 有关树的定义 生成子图&#xff1a;生成子图是从原图中选取部分节点以及这些节点…

16.喝水

喝水 html部分 <h1>Goal: 2 Liters</h1> <div class"cup cupbig"><div class"remained"><span id"liters">2L</span><small>Remained</small></div><div class"percentage&quo…

欧姆龙cp1h-e串口以太网连接怎么设置欧姆龙CX系列

捷米特JM-ETH-CX串口转以太网通讯处理器是为满足日益增多的工厂设备信息化需求&#xff08;设备网络监控和生产管理&#xff09;而设计&#xff0c;用于欧姆龙 CPM、CQM、C200、C1000、C2000 等多个系列 PLC 的以太网数据采集&#xff0c; 非常方便构建生产管理系统。 捷米特J…

【字符流】案例:文件到集合(改进版)

案例&#xff1a;文件到集合&#xff08;改进版&#xff09; 1.需求&#xff1a; 把文本文件中的数据读取到集合中&#xff0c;并遍历集合。要求&#xff1a;文件中每一行数据是一个学生对象的成员变量值 ​ 举例&#xff1a;001,郝佳乐,20,西安 2.思路&#xff1a; 定义学…

Vue第六篇:电商网站图片放大镜功能

本文参考&#xff1a;https://blog.csdn.net/liushi21/article/details/127497487 效果如下&#xff1a; 功能实现分解如下&#xff1a; &#xff08;1&#xff09;商品图区域&#xff1a;主要是浏览图片&#xff0c;根据图片的url显示图片。当鼠标离开此区域时"放大镜区…

HTTP中GET请求和POST请求的区别

前言 HTTP&#xff08;超文本传输协议&#xff09;是用于在 Web 浏览器和 Web 服务器之间传输数据的协议。在 HTTP 中&#xff0c;GET 和 POST 是两种常见的请求方法。一般我们在浏览器输入一个网址访问网站都是 GET 请求&#xff1b;在 FORM 表单中&#xff0c;可以通过设置 …

Mac端简单好用的程序创建工具:VMware InstallBuilder Enterprise

VMware InstallBuilder Enterprise for Mac是一款用于为台式机和服务器软件构建跨平台安装程序的开发工具。使用InstallBuilder&#xff0c;您可以从单个项目文件和构建环境中为Linux&#xff0c;Windows&#xff0c;Mac OS X&#xff0c;Solaris和其他平台快速创建动态&#x…

Windows下mosquitto服务端和MQTT.fx客户端搭建模拟环境

第一部分 Mosquitto安装测试 一、概念梳理 1、Mosquitto是一款实现了消息推送协议MQTT 3.1的开源消息代理软件&#xff0c;提供轻量级的、支持可订阅/可发布的消息推送模式&#xff0c;是设备与设备之间的短消息通信变得简单&#xff0c;广泛应用于低功耗传感器、手机&#xff…