常州网站备案,网站开发语言在那看出来,wordpress 公司网站,新闻发布会是一种要学会 剥落旧痂 然后 循此新生 —— 24.11.8 一、Spark是什么
定义#xff1a;
Apache Spark 是用于大规模数据处理的统一分析引擎
简单来说#xff0c;Spark是一款分布式的计算框架#xff0c;用于调度成百上千的服务器集群#xff0c;计算TB、PB乃至EB级别的海量数据… 要学会 剥落旧痂 然后 循此新生 —— 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(confsparkConf)# 打印 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(confconf)# 通过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(confconf)
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对象