PySpark和RDD对象最新详解

 更新时间:2023年01月11日 15:03:03   作者:阳862  
Spark是一款分布式的计算框架,用于调度成百上千的服务器集群,计算TB、PB乃至EB级别的海量数据,PySpark是由Spark官方开发的Python语言第三方库,本文重点介绍PySpark和RDD对象,感兴趣的朋友一起看看吧

一.了解Spark、PySpark

Spark是什么

定义:Apache Spark是用于大规模数据(large-scala data)处理的统一(unified)分析引擎。

简单来说,Spark是一款分布式的计算框架,用于调度成百上千的服务器集群,计算TB、PB乃至EB级别的海量数据

Python on Spark

Spark作为全球顶级的分布式计算框架,支持众多的编程语言进行开发。而Python语言,则是Spark重点支持的方向。

Pyspark

Spark对Python语言的支持,重点体现在,Python第三方库: PySpark之上。
PySpark是由Spark官方开发的Python语言第三方库。
Python开发者可以使用pip程序快速的安装PySpark并像其它三方库那样直接使用。

 小结

1.什么是Spark、什么是PySpark

  • Spark是Apache基金会旗下的顶级开源项目,用于对海量数据进行大规模分布式计算。
  • PySpark是Spark的Python实现,是Spark为Python开发者提供的编程入口,用于以Python代码完成Spark任务的开发
  • PySpark不仅可以作为Python第三方库使用,也可以将程序提交的Spark集群环境中,调度大规模集群进行执行。

2.为什么要学习PySpark?
大数据开发是Python众多就业方向中的明星赛道,薪资高岗位多,Spark ( PySpark)又是大数据开发中的核心技术

二.构建PySpark执行环境入口对象

想要使用PySpark库完成数据处理,首先需要构建一个执行环境入口对象。PySpark的执行环境入口对象是:类SparkContext的类对象

 注意:

 红框里面的两个都是一个意思,上面的方法叫做链式调用

#导包
from pyspark import SparkConf,SparkContext
#创建SparkConf类对象
conf=SparkConf().setMaster("local[*]").setAppName("test_spark_app")
#基于SparkConf类对象创建SparkContext对象
sc=SparkContext(conf=conf)
#打印Pyspark版本
print(sc.version)
#停止SparkContext对象的运行(停止PySpark程序)
sc.stop()

 注意:要想运行成功需要下载JDK并配置好环境变量

PySpark的编程模型

SparkContext类对象,是PySpark编程中一切功能的入口。PySpark的编程,主要分为如下三大步骤:

  • 通过SparkContext对象,完成数据输入
  • 输入数据后得到RDD对象,对RDD对象进行迭代计算
  • 最终通过RDD对象的成员方法,完成数据输出工作

小结

1.如何安装PySpark库
        pip install pyspark
2.为什么要构建SparkContext对象作为执行入口
        PySpark的功能都是从SparkContext对象作为开始
3.PySpark的编程模型是?

  • 数据输入:通过SparkContext完成数据读取
  • 数据计算:读取到的数据转换为RDD对象,调用RDD的成员方法完成计算
  • 数据输出:调用RDD的数据输出相关成员方法,将结果输出到list、元组、字典、文本文件、数据库等

三.RDD对象

如图可见,PySpark支持多种数据的输入,在输入完成后,都会得到一个:RDD类的对象
RDD全称为:弹性分布式数据集( Resilient Distributed Datasets)
PySpark针对数据的处理,都是以RDD对象作为载体,即:

  • 数据存储在RDD内
  • 各类数据的计算方法,也都是RDD的成员方法
  • RDD的数据计算方法,返回值依旧是RDD对象

python数据容器转RDD对象

PySpark支持通过Sparkcontext对象的parallelize成员方法,将:

  • list
  • tuple
  • set
  • dict
  • str

转为PySpark的RDD对象

代码:

 注意

  • 字符串会被拆分出1个个的字符
  • 存入RDD对象字典仅有key会被存入RDD对象
  • 如果要查看RDD里面有什么内容,需要用collect()方法

演示

#导包
from pyspark import  SparkConf,SparkContext
#创建SparkConf类对象
conf=SparkConf().setMaster("local[*]").setAppName("test_spark")
#基于SparkConf类对象创建SparkContext对象
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())
#停止SparkContext对象的运行(停止PySpark程序)
sc.stop()

结果是

 读取文件转RDD对象

PySpark也支持通过SparkContext入口对象,来读取文件,来构建出RDD对象。

 演示

#导包
from pyspark import  SparkConf,SparkContext
#创建SparkConf类对象
conf=SparkConf().setMaster("local[*]").setAppName("test_spark")
#基于SparkConf类对象创建SparkContext对象
sc=SparkContext(conf=conf)
#用textFile方法,读取文件数据加载到Spark中,成为RDD对象
rdd=sc.textFile("D:/game.txt")
print(rdd.collect())
#停止SparkContext对象的运行(停止PySpark程序)
sc.stop()

结果是

到此这篇关于PySpark和RDD对象详解的文章就介绍到这了,更多相关PySpark和RDD对象内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python+PyQt手搓一个简单的记事本

    Python+PyQt手搓一个简单的记事本

    这篇文章主要为大家详细介绍了Python如何结合PyQt手搓一个简单的记事本,文中的示例代码简洁易懂,感兴趣的小伙伴可以跟随小编一起学习一下
    2025-02-02
  • Python程序中用csv模块来操作csv文件的基本使用教程

    Python程序中用csv模块来操作csv文件的基本使用教程

    这篇文章主要介绍了Python程序中用csv模块来操作csv文件的基本使用教程,csv文件中也是格式化的数据,只不过csv本身没有XML和JSON那么流行...需要的朋友可以参考下
    2016-03-03
  • 把Anaconda中的环境导入到Pycharm里面的方法步骤

    把Anaconda中的环境导入到Pycharm里面的方法步骤

    这篇文章主要介绍了把Anaconda中的环境导入到Pycharm里面的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • PyQt5+requests实现车票查询工具

    PyQt5+requests实现车票查询工具

    这篇文章主要为大家详细介绍了PyQt5+requests实现车票查询工具,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-01-01
  • python登录pop3邮件服务器接收邮件的方法

    python登录pop3邮件服务器接收邮件的方法

    这篇文章主要介绍了python登录pop3邮件服务器接收邮件的方法,涉及Python操作邮件的相关技巧,需要的朋友可以参考下
    2015-04-04
  • python装饰器相当于函数的调用方式

    python装饰器相当于函数的调用方式

    今天小编就为大家分享一篇python装饰器相当于函数的调用方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • 浅谈优化Django ORM中的性能问题

    浅谈优化Django ORM中的性能问题

    这篇文章主要介绍了浅谈优化Django ORM中的性能问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07
  • python读取npy文件数据实例

    python读取npy文件数据实例

    npy文件用于存储重建ndarray所需的数据、图形、dtype 和其他信息,下面这篇文章主要给大家介绍了关于python读取npy文件数据的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-04-04
  • Python全栈之学习JQuery

    Python全栈之学习JQuery

    这篇文章主要为大家介绍了Python全栈之JQuery,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-01-01
  • Python中输入和输出格式化操作详解

    Python中输入和输出格式化操作详解

    这篇文章主要介绍了Python中的输入与输出操作,包括使用input()函数进行输入、数据类型转换、异常处理,以及使用print()函数进行输出、格式化输出方法(如%格式化、str.format()和f-string),需要的朋友可以参考下
    2025-02-02

最新评论