当前位置:   article > 正文

pyspark 读取本地csv_数据分析工具篇——pyspark应用详解

pyspark 读取本地csv_数据分析工具篇——pyspark应用详解

欢迎关注公众号:livandata

前面几篇文章我们讲解了大数据计算的主要架构:hadoop和spark,从离线和实时解决了大数据分析过程中遇到的大部分问题,但是这是否是就代表了大数据计算引擎?

不是的~

现阶段流批一体盛行,Flink也逐渐进入大家的视野,大有发展壮大的趋势,我们后面会单独讲解这一工具,这篇文章我们重点讲解一下基于spark运算的pyspark工具。

pyspark不是所有的代码都在spark环境应用,可以将一些主要的运算单元切到spark环境运算完成,然后输出运算结果到本地,最后在本地运行一些简单的数据处理逻辑。

pyspark主要的功能为:

1)可以直接进行机器学习的训练,其中内嵌了机器学习的算法,也就是遇到算法类的运算可以直接调用对应的函数,将运算铺在spark上训练。

2)有一些内嵌的常规函数,这些函数可以在spark环境下处理完成对应的运算,然后将运算结果呈现在本地。

个人理解pyspark是本地环境和spark环境的结合用法,spark中的函数是打开本地环境到spark环境的大门,本地的数据和逻辑按照spark运算规则整理好之后,通过spark函数推到spark环境中完成运算。

所以关键在于有多少计算方式是可以放在spark环境计算的,有多少常用的pyspark函数;

pyspark原理介绍

3803d384fadd26e3c89d5644f36d2e6b.gif 87f045a59d8b44194c9e76fae6c3a5ad.png

原理图如下:

b8f0147df06905a0913b0840535ae964.png

上图中,python中调用sparkcontext。

sparkcontext会通过py4j启动jvm中的javasparkcontext,javasparkcontext再将数据逻辑推到集群中完成运算。

b45145b63055c853dfbcda5df8690a96.png

结合上图,pyspark的运算逻辑为:

运算job时pyspark会通过py4j将写好的代码映射到jvm中,jvm调用自身的sparkcontext.runjob()函数,实现job的分发,分发的方式是spark的,每个job分发到集群各个executor上之后,各个executor中jvm会调用自身服务器的python进程,完成自身部分的运算,运算完成后再将结果集返回给jvm,原路返回,最终呈现在python的界面上。

有没有感觉jvm只是一个通道?

是的~

简单讲他的功能就是将python分发到各个节点上,然后再将运算结果收回来。

pyspark的常用函数

3803d384fadd26e3c89d5644f36d2e6b.gif 87f045a59d8b44194c9e76fae6c3a5ad.png

1)parallelize():将list数据序列化成RDD格式,方便spark进行运算;

2)collect():将RDD格式数据转化成list数据,方便数据输出;

3)glom():显示出RDD

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/609194
推荐阅读
相关标签
  

闽ICP备14008679号