Python学习从0到1 day26 第三阶段 Spark ① 数据输入
要学会 剥落旧痂 然后 循此新生
—— 24.11.8
一、Spark是什么
定义:
Apache Spark 是用于大规模数据处理的统一分析引擎
简单来说,Spark是一款分布式的计算框架,用于调度成百上千的服务器集群,计算TB、PB乃至EB级别的海量数据
二、PySpark
Spark对Python语言的支持,重点体现在Python第三方库:PySpark之上
PySpark是由Spark官方开发的Python语言第三方库
Python开发者可以使用pip程序快速的安装PySpark并像其他三方库那样直接使用
PySpark既可以作为库处理,也可以将程序提交到Spark集群环境中,调度大规模集群进行执行

三、掌握PySpark库的安装
同其它Python第三方库一样,PySpark同样可以使用pip程序进行安装,也可以在pycharm内直接安装
命令行终端输入:
pip install pyspark
若网速较慢,推荐使用清华园国内代理镜像:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyspark

四、掌握PySpark执行环境入口对象的构建
想要使用PySpark完成数据处理,首先需要:构建一个执行环境入口对象(拿到类SparkContext的类对象)
PySpark的执行环境入口对象是:类 SparkContext 的类对象
"""
演示获取PySpark的执行环境入口对象:SparkContext
并通过SparkContext对象获取当前PySpark的版本
"""# 导入 PySpark 相关包
from pyspark import SparkConf, SparkContext# 创建 SparkConf 实例对象 , 该对象用于配置 Spark 任务
# setMaster("local[*]") 设置运行模式:表示在单机模式下 本机运行
# setAppName("hello_spark") 任务名称是给 Spark 程序起一个名字
sparkConf = SparkConf().setMaster("local[*]").setAppName("hello_spark")# 基于SparkConf类对象创建SparkContext类对象
sparkContext = SparkContext(conf=sparkConf)# 打印 PySpark 版本号
print(sparkContext.version)# 停止 PySpark 程序 (停止SparkContext对象的运行)
sparkContext.stop()

五、理解PySpark的编程模型
PySpark编程,主要分为以下三大步骤:
1.数据输入
通过SparkContext类对象的成员方法,完成数据的读取操作,读取后得到RDD类对象
2.数据处理计算
通过RDD类对象的成员方法,完成各种数据计算的需求
3.数据输出
将处理完成后的RDD对象,调用各种成员方法完成写出文件、转换为list等操作
4.PySpark的编程模型
SparkContext类对象,是PySpark编程中一切功能的入口

六、数据输入
1.RDD对象
如图可示,PySpark支持多种数据的输入,在输入完成后,都会得到一个:RDD类的对象
RDD全称为:弹性分布式数据集(Resilient Distributed Datasets)
PySpark针对数据的处理,都是以RDD对象作为载体,即:
① 数据存储在RDD内
② 各类数据的计算方法,也都是RDD的成员方法
③ RDD的数据计算方法,返回值依旧是RDD对象

2.Python数据容器转RDD对象
PySpark支持通过SparkContext对象的parallelize成员方法,将:
list(列表)、tuple(元组)、set(集合)、dict(字典)、str(字符串)转换为PySpark的RDD对象
注意:
① 字符串会被拆分出一个个的字符,存入RDD对象
② 字典仅有key会被存入RDD对象
"""
#通过PySpark代码加载数据,即数据输入
"""
from pyspark import SparkConf, SparkContextconf = SparkConf().setMaster("local[*]").setAppName("test_spark")
sc = SparkContext(conf=conf)# 通过parallelize方法将Python对象加载到Spark内,成为RDD对象
# 列表
rdd1 = sc.parallelize([1, 2, 3, 4, 5])
# 元组
rdd2 = sc.parallelize((1, 2, 3, 4, 5))
# 字符串
rdd3 = sc.parallelize("abcdefg")
# 集合
rdd4 = sc.parallelize({1, 2, 3, 4, 5})
# 字典
rdd5 = sc.parallelize({"key1": "value1", "key2": "value2"})# 如果要查看RDD里面有什么内容,需要用collect()方法
print(rdd1.collect())
print(rdd2.collect())
print(rdd3.collect())
print(rdd4.collect())
print(rdd5.collect())sc.stop()

3.读取文件转RDD对象
"""
#通过PySpark代码加载文档数据,从文档中中读取数据输入
"""
from pyspark import SparkConf, SparkContextconf = SparkConf().setMaster("local[*]").setAppName("test_spark")
sc = SparkContext(conf=conf)
rdd = sc.textFile("D:/2LFE\Desktop\Hello.txt")
print(rdd.collect())sc.stop()

代码中的报红警告是由于在 Windows 系统上运行 PySpark 时缺少 winutils.exe 和 Hadoop 环境变量设置导致的
由于我们只学习pyspark模块,不需要配置Hadoop环境信息
七、总结
1.RDD对象是什么?为什么要使用它?
RDD对象称之为分布式弹性数据集,是PySpark中数据计算的载体,它可以:
① 提供数据存储
② 提供数据计算的各类方法
③ 数据计算的方法,返回值依旧是RDD(RDD选代计算)
后续对数据进行各类计算,都是基于RDD对象进行
2.如何输入数据到Spark(即得到RDD对象)
① 通过SparkContext的parallelize成员方法,将Python数据容器转换为RDD对象
② 通过SparkContext的textFile成员方法,读取文本文件得到RDD对象
相关文章:
Python学习从0到1 day26 第三阶段 Spark ① 数据输入
要学会 剥落旧痂 然后 循此新生 —— 24.11.8 一、Spark是什么 定义: Apache Spark 是用于大规模数据处理的统一分析引擎 简单来说,Spark是一款分布式的计算框架,用于调度成百上千的服务器集群,计算TB、PB乃至EB级别的海量数据…...
kafka消费者的消费分区策略有哪些,默认是哪个?
Kafka消费者的分区分配策略主要有以下几种,分别决定了如何将多个分区分配给消费者: 1. Range(范围分配) 描述:将分区连续地分配给消费者。每个消费者负责一段连续的分区。如果有多个消费者,那么消费者会按…...
前端常用时间操作汇总
(1)获取中国标准时间: let now new Date(); // Thu Nov 14 2024 17:13:49 GMT0800 (中国标准时间) (2)获取年份: let year now.getFullYear(); // 2024 (3)获取月份&…...
106. UE5 GAS RPG 使用MVVM
MVVM 是 Model-View-ViewModel的缩写,个人理解它和MVC很相似,有区别的地方在于,在MVC里,Controller会服务多个View,而MVVM里,每个View都拥有一个单独的ViewModel,所以ViewModel相当于精简版的Co…...
Elasticsearch中什么是倒排索引?
倒排索引(Inverted Index)是一种索引数据结构,它在信息检索系统中被广泛使用,特别是在全文搜索引擎中。倒排索引允许系统快速检索包含给定单词的文档列表。它是文档内容(如文本)与其存储位置之间的映射&…...
深度学习:AT Decoder 详解
AT Decoder 详解 在序列到序列的模型架构中,自回归解码器(Autoregressive Translator, AT Decoder)是一种核心组件,其设计目标是确保生成的序列在语义和语法上的连贯性与准确性。自回归解码器通过逐步、依赖前一输出来生成新的输…...
pythons工具——图像的随机增强变换(只是变换了图像,可用于分类训练数据的增强)
从文件夹中随机选择一定数量的图像,然后对每个选定的图像进行一次随机的数据增强变换。 import os import random import cv2 import numpy as np from PIL import Image, ImageEnhance, ImageOps# 定义各种数据增强方法 def random_rotate(image, angle_range(-30…...
C++中volatile限定符详解
volatile是 C 和 C 中的一个类型限定符,它用于告诉编译器被修饰的变量具有特殊的属性,编译器在对该变量进行优化时需要特殊对待。以下是volatile限定符的主要作用: 1. 防止优化 内存访问顺序:在多线程环境或者与硬件交互的程序中…...
如何关闭Python解释器
方法1:采用sys.exit(0)正常终止程序,从图中可以看到,程序终止后shell运行不受影响。 方法2:采用os._exit(0)关闭整个shell,从图中看到,调用sys._exit(0)后整个shell都重启了(RESTART Shell&…...
《TCP/IP网络编程》学习笔记 | Chapter 9:套接字的多种可选项
《TCP/IP网络编程》学习笔记 | Chapter 9:套接字的多种可选项 《TCP/IP网络编程》学习笔记 | Chapter 9:套接字的多种可选项套接字可选项和 I/O 缓冲大小套接字多种可选项getsockopt & setsockoptSO_SNDBUF & SO_RCVBUF SO_REUSEADDR发生地址绑定…...
渗透测试---网络基础之HTTP协议与内外网划分
声明:学习素材来自b站up【泷羽Sec】,侵删,若阅读过程中有相关方面的不足,还请指正,本文只做相关技术分享,切莫从事违法等相关行为,本人一律不承担一切后果 目录 一、HTTP协议各版本介绍 二、HTTP请求的方…...
15分钟学 Go 第 45 天 : 使用Docker容器
第45天:使用Docker容器 目标 在本节中,我们将深入了解Docker及其基本用法,掌握如何使用Docker容器来简化开发和部署流程。 背景知识 Docker是一个开源平台,用于开发、运输和运行应用程序。它使我们能够使用容器技术将应用程序…...
DriveLM 论文学习
论文链接:https://arxiv.org/pdf/2312.14150 代码链接:https://github.com/OpenDriveLab/DriveLM 解决了什么问题? 当前,自动驾驶方案的性能仍然不足。一个必要条件就是泛化能力,需要模型能处理未经训练的场景或不熟…...
YoloV10改进策略:上采样改进|CARAFE,轻量级上采样|即插即用|附改进方法+代码
论文介绍 CARAFE模块概述:本文介绍了一种名为CARAFE(Content-Aware ReAssembly of FEatures)的模块,它是一种用于特征上采样的新方法。应用场景:CARAFE模块旨在改进图像处理和计算机视觉任务中的上采样过程࿰…...
光模块基础知识
1. 光模块的封装 光模块是光收发模块的简称,主要根据不同的外型来区分,而在同一外型中,又有着多种规格;在数据通信领域,最常见的光模块(根据外型区分)分别是SFF、GBIC、SFP、和XFP、QSFP 、XEN…...
【go从零单排】Closing Channels通道关闭、Range over Channels
🌈Don’t worry , just coding! 内耗与overthinking只会削弱你的精力,虚度你的光阴,每天迈出一小步,回头时发现已经走了很远。 📗概念 在 Go 语言中,通道(channel)的关闭是一个重要…...
初始JavaEE篇 —— 文件操作与IO
找往期文章包括但不限于本期文章中不懂的知识点: 个人主页:我要学编程程(ಥ_ಥ)-CSDN博客 所属专栏:JavaEE 目录 文件介绍 Java标准库中提供操作文件的类 文件系统操作 File类的介绍 File类的使用 文件内容操作 二进制文件的读写操作…...
GitLab实现 HTTP 访问和 SMTP 邮件发送
GitLab实现 HTTP 访问和 SMTP 邮件发送 本教程详细记录了如何配置 SMTP 邮件通知、实现外网 HTTP 访问,并分享在配置过程中遇到的问题及解决方法。 一、准备工作 安装 Docker:确保在 Synology NAS 上安装 Docker 应用。下载 GitLab 镜像:在…...
HarmonyOS ArkTS 下拉列表组件
Entry Component struct Index {defaultValue: string 下拉列表;// 定义选项数组,包含 value 和可选的 labeloptions: Array<SelectOption> [{ value: aaa },{ value: bbb },{ value: ccc },{ value: ddd },{ value: eee },{ value: fff },{ value: ggg },{…...
zabbix监控Linux系统
1. zabbix agent安装 #sudo rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/8/x86_64/zabbix-release-6.0-4.el8.noarch.rpm #sudo dnf clean all #yum install zabbix-agent -y Running transaction test Transaction test succeeded. Running transactionPreparing …...
【具身智能】最大微信群
点击下方卡片,关注“CVer”公众号AI/CV重磅干货,第一时间送达具身智能:人工智能的下一个浪潮!今年再次被写入《政府工作报告》中,已经成为国家未来重点培育产业。市场方面,具身智能近一年融资更是爆火&…...
为Hermes Agent配置Taotoken自定义供应商接入大模型
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 为Hermes Agent配置Taotoken自定义供应商接入大模型 Hermes Agent 是一个功能强大的AI智能体开发框架,它支持通过自定义…...
3个场景告诉你:为什么你需要PowerToys Text Extractor
3个场景告诉你:为什么你需要PowerToys Text Extractor 【免费下载链接】PowerToys Microsoft PowerToys is a collection of utilities that supercharge productivity and customization on Windows 项目地址: https://gitcode.com/GitHub_Trending/po/PowerToys…...
告别笔记本续航焦虑:手把手教你用NVMe电源管理给SSD“降频省电”
告别笔记本续航焦虑:手把手教你用NVMe电源管理给SSD“降频省电”每次带着笔记本出差,最担心的就是电量撑不过一场会议。你可能已经关闭了背光键盘、调低了屏幕亮度,甚至忍痛停用了独显,但续航依然捉襟见肘。其实,有一个…...
告别账单惊吓,Taotoken Token Plan 如何让成本更可控
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 告别账单惊吓,Taotoken Token Plan 如何让成本更可控 对于依赖大模型 API 进行开发的团队和个人而言,项目成…...
DeepSeek混合云架构下跨AZ流量调度困局:基于eBPF+Service Mesh的实时负载感知调度器设计(已上线支撑日均2.7亿QPS)
更多请点击: https://codechina.net 第一章:DeepSeek混合云架构下跨AZ流量调度困局的系统性认知 在DeepSeek混合云生产环境中,核心推理服务部署于多可用区(AZ)集群,底层横跨公有云(如AWS us-ea…...
终极指南:如何将普通智能音箱改造成AI语音助手
终极指南:如何将普通智能音箱改造成AI语音助手 【免费下载链接】mi-gpt 🏠 将小爱音箱接入 ChatGPT 和豆包,改造成你的专属语音助手。 项目地址: https://gitcode.com/GitHub_Trending/mi/mi-gpt 您是否想过,家中那台只会简…...
使用Taotoken稳定调用大模型API提升智能客服响应效率
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 使用Taotoken稳定调用大模型API提升智能客服响应效率 构建一个稳定、高效的智能客服系统,是许多技术团队面临的核心挑战…...
3分钟快速汉化:HS2-HF_Patch开源工具一键安装、多插件支持、中文游戏体验指南
3分钟快速汉化:HS2-HF_Patch开源工具一键安装、多插件支持、中文游戏体验指南 【免费下载链接】HS2-HF_Patch Automatically translate, uncensor and update HoneySelect2! 项目地址: https://gitcode.com/gh_mirrors/hs/HS2-HF_Patch 还在为Honey Select 2…...
四线三格英语本模板word版pdf版作文纸可打印
高清四线三格英语书写本,兼具 Word、PDF 双格式,标准作文纸版式,页面规整适配打印,日常练字、英语习作、课业书写均可使用。 我用夸克网盘给你分享了「英语四线三格打印纸」(50款), 链接&#x…...

