个人对 PySpark 的看法和见解

1. 介绍下为什么重新写pyspark的博客

          很久没写过关于pyspark的博客了,最近工作中要用到,所以就重新捡起来了,事先说一下,我pyspark也不怎么样,一边看官网、一边自己查资料并总结出来的,有些大牛喜欢看源码,对于我们这些人来说,会用就行,什么原理暂时不说,等学会了有时间再去看,我自己从最开始的方法写起,一个算子一个博客,结合他人的思路来多方面的介绍这个算子。

          写博客的最主要的目的是给我自己看的,因为我这人记性也不行,学了不用就忘,所以把自己一开始学习的思路、方法记下来,用到的时候搜下自己博客就行了,当然也给大家看的,让大家在学习Pyspark的路上少走弯路。

 

2.  为什么要用到pyspark

          pyspark是用来处理大数据的,究竟多少算大的数据呢,几十万、几百万、几千万?或者以亿为单位的数据?我只前看过一些资料,记得是百万级别的就算大数据了,我们要跑程序,我用过的高配的电脑最多16G内存,跑过最大的文件最多是2G,还是用readline()读的,速度那叫一个慢啊,但是我又不怎么会用pyspark,只能在本地处理了,要是文件再大一点怎么办,还是一行行读吗?这时候就必须用到集群了,而现有的集群就是hadoop和spark,hadoop基于磁盘的,IO开销大,速度慢,所以就出来了spark这个框架,基于hadoop,spark是基于内存的,pyspark是spark用python写的api接口,内存读写速度肯定比磁盘快。

 

3. pyspark和spark有什么区别呢

       其实没有什么本质上的区别,只是pyspark是spark用python写的api接口, 指定master同样可以调用集群资源,就是说我们可以用python的语法来做处理大数据,但是pyspark有自己定义的规则和语法,一些处理数据的常用方法他们都给我们封装好了,我们直接用就行。我目前明白了一些东西,我不知道我讲的对不对,这是基于我个人的看法和实际上遇到的情况总结出来的,也许以后会有其他看法。

 

4. 个人对集群的看法

        其实在集群上跑pyspark代码,和我们在本地跑python代码没有什么本质的区别,宏观来讲,就是处理的数据量不同而已;微观来讲,就是都要遵循各个方式的规则,比如语法、变量等一些方面上不同,集群的话功能复杂,规则、方法也多。

        简单来说,就是我们自己的电脑来跑数据,少量的还行,数据量大了,怎么办,内存处理不过来?有人就说,简单啊,加内存条,好,我加了,但是数据量又比前面翻了几番,怎么办?又有人说,接着加呗,但是电脑装内存条是有限度的,好像最多能加到64G,我见过最大的也就是32G,但是数据量已经超过了64G怎么吧,总不能等内存慢慢处理吧。有人说,那就换个方式呗,加内存不行,我把数据拆开不就行了,一份拆成10份,一台电脑处理一份,这不就行了。好了,到这,就进入到正题了,数据拆分成了10份,我们是不是得把他全部都聚合到一块,这又是一个耗时操作,还得通过数据库或者文件等一些形式进行中转,怎么办?又有人说,简单啊,把这10台机器连一块就行了呗,这是就又有人提问了,干嘛要10台机器这么麻烦,把10台机器的配置加到一台机器上就行了,还省的维护那么多台机器,直接看做一台电脑加了无限大的内存条, 多简单,咳咳,本人之前就是这么想的,要什么大数据框架,什么分布式数据库,多麻烦啊,还得重新学这么多东西,一台电脑上连他个1000G的内存条,就不信处理不了,当时我还是太天真了,为什么这么说呢,首先就是电脑自身问题,只有一台机器,假如这台机器坏了怎么办,遇到个坑爹的win10,自动蓝屏更新重启(本人跑了三天的数据就是被这个坑了,中途蓝屏重启),彻底凉凉;还有就是数据本身存储问题,跑完了的数据放到本地,假如被损坏,或者丢失了怎么办?等等这些原因,我们不得不用集群了,集群有什么好处呢? 

       1. 出现任何故障,如:硬盘、内存、CPU、主板、I/O板以及电源故障,运行在这台服务器上的应用就会切换到其它的服务器上。

       2.、集群系统可解决软件系统问题,我们知道,在计算机系统中,用户所使用的是应用程序和数据,而应用系统运行在操作系统之上,操作系统又运行在服务器上。这样,只要应用系统、操作系统、服务器三者中的任何一个出现故障,系统实际上就停止了向客户端提供服务,比如我们常见的软件死机,就是这种情况之一,尽管服务器硬件完好,但服务器仍旧不能向客户端提供服务。而集群的最大优势在于对故障服务器的监控是基于应用的,也就是说,只要服务器的应用停止运行,其它的相关服务器就会接管这个应用,而不必理会应用停止运行的原因是什么。

网上比较官方的说法:       

       1. 高可伸缩性:服务器集群具有很强的可伸缩性。随着需求和负荷的增长,可以向集群系统添加更多的服务器。在这样的配置中,可以有多台服务器执行相同的应用和数据库操作。

       2. 高可用性:高可用性是指,在不需要操作者干预的情况下,防止系统发生故障或从故障中自动恢复的能力。通过把故障服务器上的应用程序转移到备份服务器上运行,集群系统能够把正常运行时间提高到大于99.9%,大大减少服务器和应用程序的停机时间。

       3. 高可管理性:系统管理员可以从远程管理一个、甚至一组集群,就好像在单机系统中一样。


通俗来讲,就是两个字 牛逼

 

4. 为什么有pyspark

          因为有很多人不会编程,但是又要处理大批量数据,又不想假与他人之手,只能自己干,pyspark中可以使用SQL语法来处理数据,这样的话就有很多人能满足条件了。

       要是数据再复杂一点或者想更好的处理数据的话怎么办?学门python语言呗,都说python是最好学的语言,学点基础语法,然后使用pyspark中的rdd算子,多简单啊。

 

5.. 我为什么选pyspark

        注解:(我知道的目前处理大数据最常用的三种语言:java、scala、python)

        1.因为lz只会python,大学学的C和C++全都还给老师了。

        2. java太庞大了,而且语法复杂,连一句输出都得写个类, 学了python的我看的实在是太难受了(自学过一周放弃了)。

        3. scala和java语法七八分相似,去学scala我还不如学java的呢。

        4. pyspark处理数据也不比java和scala差,把pyspark学深一样可以开心的玩耍。

 

  • 14
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
Pyspark和Pandas是两个常用的数据处理和分析工具。Pandas是一个基于Python的开源数据分析库,提供了高效的数据结构和数据分析工具,适用于小型数据集。而Pyspark是Apache Spark的Python API,是一个用于大规模数据处理和分析的分布式计算框架。 Pandas和Pyspark在某些方面有相似之处。首先,它们都提供了DataFrame这个数据对象,用于处理结构化数据。DataFrame是一个二维表格,可以进行数据的筛选、转换和聚合等操作。\[1\]在导入数据方面,Pandas使用`read_csv`函数导入CSV文件,而Pyspark使用`read.csv`函数导入CSV文件。\[1\]此外,它们都支持对数据进行基本的操作,如查看数据的形状和列数。Pandas使用`shape`属性获取数据的形状,而Pyspark使用`count()`函数获取数据的行数,使用`len(df.columns)`获取数据的列数。\[1\] 然而,Pandas和Pyspark也有一些区别。首先,Pandas是在单个机器上运行的,而Pyspark是分布式计算框架,可以在多个机器上进行并行计算。这使得Pyspark适用于处理大规模数据集,而Pandas适用于小型数据集。其次,Pandas提供了更多的数据处理和分析功能,如数据清洗、特征工程和可视化等,而Pyspark更适合于大规模数据的处理和分析。\[2\] 在获取列中的不同值方面,Pandas使用`nunique()`函数获取列中的唯一值数量,而Pyspark使用`distinct().count()`函数获取列中的唯一值数量。\[3\] 总的来说,Pandas适用于小型数据集和单机环境下的数据处理和分析,而Pyspark适用于大规模数据集和分布式计算环境下的数据处理和分析。选择使用哪个工具取决于数据的规模和计算需求。 #### 引用[.reference_title] - *1* *2* *3* [【Python】对比Pandas,学习PySpark大数据处理](https://blog.csdn.net/fengdu78/article/details/128031017)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值