Pyspark库以及环境配置

目录

一、pyspark类库

二、window安装anaconda

三、配置Pycharm专业版


一、pyspark类库

        类库:一堆别人写好的代码,可以直接导入使用,例如Pandas就是Python的类库。

        框架:可以独立运行,并提供编程结构的一种软件产品,例如Spark就是一个独立的框架。

        PySpark是Spark官方提供的一个Python类库,内置了完全的Spark API,可以通过PySpark类库来编写Spark应用程序,并将其提交到Spark集群中运行。

Pyspark类库和spark对比
功能PySparkSpark
底层语言PythonScala(JVM)
上层语言支持PythonPython\Java|Scala\R
集群化\分布式运行不支持,仅支持单机支持
定位Python库(客户端)标准框架(客户端和服务端)
是否可以Daemon运行NoYes
使用场景本地开发调试Python程序生产环境集群化运行

        (1)下载PySpark库

        命令:pip install pyspark -i https://pypi.tuna.tsinghua.edu.cn/simple

        (2)验证Pyspark库

二、window安装anaconda

        (1)下载安装包

        (2)安装anaconda

        (3)下载软件包

命令:pip install pyspark -i https://pypi.tuna.tsinghua.edu.cn/simple

三、配置Pycharm专业版

        (1)新建项目

        (2)配置SSH远程连接

四、程序测试

# coding:utf-8
from pyspark import SparkConf,SparkContext

if __name__ == "__main__":
    conf = SparkConf().setMaster("local[*]").setAppName("wordcount")
    #通过SparkConf对象构建SparkContext对象
    sc = SparkContext(conf=conf)
    #需求:wordcount单从技术,通过读取HDFS上的words.txt文件,对内部的单词统计出现的数量
    #读取文件
    file_rdd = sc .textFile("hdfs://pyspark01:8020/input/words.txt")
    #将单词进行分割,得到一个存储全部单纯的集合对象
    words_rdd = file_rdd.flatMap(lambda line: line.split(" "))
    #将单词转换为元组对象:key是单词,value是数字
    words_with_one_rdd = words_rdd.map(lambda x: (x,1))
    #将元组的value按照key来分组,对所有的value执行聚合操作(相加)
    result_rdd = words_with_one_rdd.reduceByKey(lambda a,b: a + b )
    #通过collect方法手机RDD的数据打印输出结果
    print(result_rdd.collect())

五、python on spark原理

        PySpark宗旨是在不破坏Spark已有的运行时架构,在Spark架构外层包装一层Python API,借助Py4j实现Python和Java的交互,进而实现通过Python编写Spark应用程序,其运行时架构如下图所示。 宗旨是在不破坏已有的运行时架构,在火花架构外层包装一层PythonAPI,借助Py4j实现Python和Java的交互,进而实现通过Python编写应用程序,其运行时架构如下图所示。

python on spark流程:Python -> JVM代码 -> RPC ->调度JVM Executor ->PySpark中转 ->

Python Executor进程

详细流程:

        ①在Driver端,python的Driver代码通过Py4j模块翻译成JVM代码,变成JVM Driver运行。

        ②在Executor端,python启动pyspark守护进程,做一个中转站。

        ③Driver的操作命令发送给JVM Executor,JVM Executor通过pyspark守护进程将指令发送给pyspark守护进程。

        ④PySpark守护进程将指令调度到运行的Python进程上。

        ps:Executor端本质是Python进程在工作,指令是又JVM Executor发送(RPC)而来

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吗喽也是命

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值