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

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

"""
#通过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对象)

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

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


http://www.kler.cn/a/386414.html

相关文章:

  • 当你想要conda安装遇到UnavailableInvalidChannel: HTTP 404 NOT FOUND for channel的问题
  • C语言入门到精通(第六版)——第十六章
  • 力扣104 : 二叉树最大深度
  • 免费,WPS Office教育考试专用版
  • 【数据结构】交换排序——冒泡排序 和 快速排序
  • 计算机网络(3)网络拓扑和IP地址,MAC地址,端口地址详解
  • 论文阅读(三十五):Boundary-guided network for camouflaged object detection
  • 设置JAVA以适配华为2288HV2服务器的KVM控制台
  • 游戏中Dubbo类的RPC设计时的注意要点
  • 2024系统架构师---上午综合题真题(重复考试知识难点)
  • 【LeetCode】【算法】279. 完全平方数
  • 【GeoJSON在线编辑平台】(1)创建地图+要素绘制+折点编辑+拖拽移动
  • 图像格式中的 stride 和 pix stide
  • SDL 播放PCM
  • 国内读新加坡公立大学在职博士是一种怎样的体验?还中文授课
  • Python学习从0到1 day27 第三阶段 Spark ③ 数据计算 Ⅱ
  • Nuxt3之使用lighthouse性能测试及性能优化实操
  • MySQL 中的 `IN`、`EXISTS` 区别与性能分析
  • Kubernetes-编排工具篇-01-Kustomize与Helm对比
  • 安装和运行开发微信小程序
  • 贪心算法day2(最长递增子序列)
  • 常见插入排序算法的实现(直接插入排序与希尔排序)
  • 虚拟化负载均衡至少需要几台服务器?
  • Linux服务器网络故障排查命令
  • 【前端】Svelte:事件处理
  • Node.js——fs模块-文件重命名和移动