Python如何进行大数据分析?

文章介绍了在大数据场景下,当Pandas处理效率低下时,如何使用Spark进行高效的数据分析。通过PySpark,可以方便地对百万级以上数据进行操作,如构建连通图并找出同一社区的成员。文中提供了一个具体案例,展示了如何使用PySpark解决连通图问题,强调了Spark在大数据处理中的优势。
摘要由CSDN通过智能技术生成

大家应该都用Python进行过数据分析吧,Pandas简直就是数据处理的第一利器。但是不知道大家有没有试过百万级以上的数据,这时候再用Pandas处理就是相当的慢了。

那么对于大数据来说,应该用什么处理呢?

图片

在公司的日常工作中,其实会使用Spark来进行大数据分析偏多。企业数据的分析始于读取、过滤和合并来自多个数据源的文件和数据流[1]。

Spark数据处理引擎是这方面的佼佼者,可处理各种量级的数据,其传输速度比Hadoop系统快100倍。得益于SQL的支持、直观的界面和简单的多语言API,你可轻松使用Spark,而不必学习复杂的新型生态系统。

图片

对于Python爱好者来说PySpark则更为熟悉,我们可以通过调用Python API的方式来编写Spark程序,它支持了大多数的Spark功能,比如SparkDataFrame、Spark SQL、Streaming、MLlib等等。

关于PySpark与GraphFrames的安装与使用可以查看这篇博客:

https://xxmdmst.blog.csdn.net/article/details/123009617

下面我们通过一个小案例,来看看如果用PySpark求解问题[2]。

PySpark求解连通图问题

刘备和关羽有关系,说明他们是一个社区,刘备和张飞也有关系,那么刘备、关羽、张飞归为一个社区,以此类推。
在这里插入图片描述

对于这个连通图问题使用Pyspark如何解决呢?

首先,我们创建spark对象:

from pyspark.sql import SparkSession, Rowfrom graphframes import GraphFramespark = SparkSession \    .builder \    .appName("PySpark") \    .master("local[*]") \    .getOrCreate()sc = spark.sparkContext# 设置检查点目录sc.setCheckpointDir("checkpoint")

然后构建数据:

data = [    ['刘备', '关羽'],    ['刘备', '张飞'],    ['张飞', '诸葛亮'],    ['曹操', '司马懿'],    ['司马懿', '张辽'],    ['曹操', '曹丕']]data = spark.createDataFrame(data, ["人员", "相关人员"])data.show()

输出结果:

+------+--------+|  人员|相关人员|+------+--------+|  刘备|    关羽||  刘备|    张飞||  张飞|  诸葛亮||  曹操|  司马懿||司马懿|    张辽||  曹操|    曹丕|+------+--------+

很明显原始数据就是图计算所要求的边数据,只修改一下列名即可:

edges = data.toDF("src", "dst")edges.printSchema()

输出结果:

root |-- src: string (nullable = true) |-- dst: string (nullable = true)

下面我们开始构建顶点数据:

vertices = (    edges.rdd.flatMap(lambda x: x)            .distinct()            .map(lambda x: Row(x))            .toDF(["id"]))vertices.show()

输出结果:

+------+|    id|+------+|诸葛亮||  刘备||  曹操||司马懿||  曹丕||  关羽||  张飞||  张辽|+------+

下面使用spark的图计算 计算连通图:

g = GraphFrame(vertices, edges)result = g.connectedComponents().orderBy("component")result.show()

输出结果:

+------+------------+|    id|   component|+------+------------+|司马懿|           0||  张辽|           0||  曹丕|           0||  曹操|           0||  关羽|635655159808||  刘备|635655159808||  张飞|635655159808||诸葛亮|635655159808|+------+------------+

可以看到结果中已经顺利将一个社区的成员通过一个相同的component标识出来,成功解决需求。

作为数据从业者,工作越来越离不开Spark,而无论你使用Python、Scala或Java编程语言,实际上都可以调用Spark实现大数据分析的高效操作。

-END-


学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、机器学习、自动化测试带你从零基础系统性的学好Python!

👉[CSDN大礼包:《python安装工具&全套学习资料》免费分享]安全链接,放心点击

👉Python学习大礼包👈

在这里插入图片描述

👉Python学习路线汇总👈

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取哈)
在这里插入图片描述

👉Python必备开发工具👈

在这里插入图片描述

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末

👉Python实战案例👈

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

👉Python书籍和视频合集👈

观看零基础学习书籍和视频,看书籍和视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

在这里插入图片描述

👉Python面试刷题👈

👉Python副业兼职路线👈

在这里插入图片描述
在这里插入图片描述
这份完整版的Python全套学习资料已经上传CSDN,朋友们如果需要可以点击链接免费领取或者保存图片到wx扫描二v码免费领取保证100%免费

👉[CSDN大礼包:《python安装工具&全套学习资料》免费分享]安全链接,放心点击

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值