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

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对象)

① 通过SparkContextparallelize成员方法,将Python数据容器转换为RDD对象

② 通过SparkContexttextFile成员方法,读取文本文件得到RDD对象


http://www.mrgr.cn/news/69188.html

相关文章:

  • mysql时间时区修改、set global、配置文件-default-time-zone
  • 用pandoc工具实现ipynb,md,word,pdf之间的转化
  • 小版本大不同 | Navicat 17 新增 TiDB 功能
  • 自动化运维(k8s):一键获取指定命名空间镜像包脚本
  • 显示微服务间feign调用的日志
  • WebGIS四大地图框架:Leaflet、OpenLayers、Mapbox、Cesium
  • 在Rocky Linux 9上快速安装Nginx
  • Docker基础(一)
  • 深度学习基础—了解词嵌入
  • 基于Video-ReTalking的AI数字人模型部署
  • CSS-盒模型
  • Linux——入门
  • 拓扑排序(C++类封装+数组模拟队列和邻接表)
  • of 操作函数——获取设备树节点
  • 概念井喷时代:什么样的产品才是真正的云产品?哪一些在浑水摸鱼
  • JS 循环语句
  • sql注入绕过,超详细!!
  • 力扣题库——75.颜色分类
  • 计算结构加法3+2
  • java.lang.NoClassDefFoundError: org/springframework/aot/AotDetector问题解决
  • 提升内容质量的五大关键策略
  • 家用云相册方案探索之Immich
  • 鸿蒙进阶篇-type、typeof、类
  • Java基于小程序公考学习平台的设计与实现(附源码,文档)
  • 配置拦截器时Bean注入失败的解决方案
  • 课程讲解--深入探究二分算法