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 的类对象

python 复制代码
"""
演示获取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对象

python 复制代码
"""
#通过PySpark代码加载数据,即数据输入
"""
from pyspark import SparkConf, SparkContext

conf = 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对象

python 复制代码
"""
#通过PySpark代码加载文档数据,从文档中中读取数据输入
"""
from pyspark import SparkConf, SparkContext

conf = 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对象

相关推荐
知识分享小能手1 小时前
React学习教程,从入门到精通, React 属性(Props)语法知识点与案例详解(14)
前端·javascript·vue.js·学习·react.js·vue·react
茯苓gao4 小时前
STM32G4 速度环开环,电流环闭环 IF模式建模
笔记·stm32·单片机·嵌入式硬件·学习
是誰萆微了承諾4 小时前
【golang学习笔记 gin 】1.2 redis 的使用
笔记·学习·golang
DKPT5 小时前
Java内存区域与内存溢出
java·开发语言·jvm·笔记·学习
aaaweiaaaaaa5 小时前
HTML和CSS学习
前端·css·学习·html
看海天一色听风起雨落6 小时前
Python学习之装饰器
开发语言·python·学习
speop7 小时前
llm的一点学习笔记
笔记·学习
非凡ghost7 小时前
FxSound:提升音频体验,让音乐更动听
前端·学习·音视频·生活·软件需求
ue星空7 小时前
月2期学习笔记
学习·游戏·ue5
萧邀人8 小时前
第二课、熟悉Cocos Creator 编辑器界面
学习