PySpark——开启大数据分析师之路


公众号后台回复“图书“,了解更多号主新书内容

作者:luanhz

来源:小数志

导读

近日由于工作需要,突击学了一下PySpark的简单应用。现分享其安装搭建过程和简单功能介绍。

01 Spark简介

了解PySpark之前首先要介绍Spark。Spark,英文原义为火花或者星火,但这里并非此意,或者说它就没有明确的含义。实际上"名不副实"这件事在大数据生态圈各个组件中是很常见的,例如Hive(蜂巢),从名字中很难理解它为什么会是一个数仓,难道仅仅是因为都可用于存储?

当然,讨论spark名字的含义并无意义,我们需要知道的是Spark是大数据生态圈中的一个分布式快速计算引擎,这其中包含了三层含义:分布式、快速、计算引擎。分布式意味着它支持多节点并行计算和备份;而快速则是相对Hadoop中的MapReduce计算框架而言,官网号称速度差距是100倍;计算引擎则描述了Spark在大数据生态中定位:计算。

存储和计算是大数据中的两大核心功能。

大数据框架,一般离不开Java,Spark也不例外。不过Spark并非是用Java来写的,而是用Scala语言。但考虑Scala语言建立在Java基础之上,实际上Scala是可以直接调用Java的包的,所以从这点来讲Spark归根结底还是要依赖Java,自然环境依赖也需要JDK。也正是基于这些原因,Spark的主要开发语言就是Java和Scala。然后随着数据科学的日益火爆,Python和R语言也日益流行起来,所以Spark目前支持这4种语言。当Spark遇到Python就变成了PySpark,这也是我们今天介绍的主角。

Spark目前最新版本是3.0,于今年6月16日正式发布release版。

02 PySpark安装

一般而言,进行大数据开发或算法分析需要依赖Linux环境和分布式集群,但PySpark支持local模式,即在本地单机运行。所以,如果为了在个人PC上练习PySpark语法功能或者调试代码时,是完全可以在自己电脑上搭建spark环境的,更重要的windows系统也是可以的!

实际上,安装PySpark非常简单,仅需像安装其他第三方Python包一样执行相应pip命令即可,期间pip会自动检测并补全相应的工具依赖,如py4j,numpy和pandas等。这里py4j实际上是python for java的意思,是Python和java之间互调的接口,所以除了pip命令安装PySpark之外还需配置系统的jdk环境,一般仍然是安装经典的JDK8版本,并检查是否将java配置到系统环境变量。相应的检验方法是在cmd窗口中键入java -version,当命令可以执行并显示正确的版本时,说明系统已完成java环境搭建。这是为PySpark运行提供了基础。

所以总结一下,安装pyspark环境仅需执行两个步骤:

  • 安装JDK8,并检查系统配备java环境变量

  • Pip命令安装pyspark包

顺利完成以上两个步骤后,在jupyter中执行如下简单代码,检验下PySpark环境是否正确搭建。

from pyspark import SparkContext
sc = SparkContext()
rdd = sc.parallelize([1, 2])
rdd.getNumPartitions()
# 输出4

03 PySpark主要功能介绍

Spark作为分布式计算引擎,主要提供了4大核心组件,它们之间的关系如下图所示,其中GraphX在PySpark中暂不支持。

RDD(Resilient Distributed DataSet,弹性分布式数据集)是Spark中的核心数据结构(Spark core),是完成分布式任务调度的关键,从名字缩写中可以看出其有3大特性:弹性,意味着大小可变、分区数量可变;分布式,表示支持多节点并行处理;数据集,说明这是一个特殊的数据结构。

进一步的,Spark中的其他组件依赖于RDD,例如:

  • SQL组件中的核心数据结构是DataFrame,而DataFrame是对rdd的进一步封装。值得一提的是这里的DataFrame实际上和Pandas或者R语言的data.frame其实是很为相近的,语法、功能、接口都有很多共同之处,但实际上这里的DataFrame支持的接口要少的多,一定程度上功能相对受限;

  • Streaming组件中的核心数据结构是Dstream,即离散流(discrete stream),本质就是一个一个的rdd;

  • PySpark中目前存在两个机器学习组件ML和MLlib,前者是推荐的机器学习库,支持的学习算法更多,基于SQL中DataFrame数据结构,而后者则是基于原生的RDD数据结构,包含的学习算法也较少

了解了这些,PySpark的核心功能和学习重点相信应该较为了然。后续将不定期推出SQL和ML两大组件的系列要点分享。

◆ ◆ ◆  ◆ ◆
麟哥新书已经在京东上架了,我写了本书:《拿下Offer-数据分析师求职面试指南》,目前京东正在举行100-50活动,大家可以用相当于原价5折的预购价格购买,还是非常划算的:

点击下方小程序即可进入购买页面:
数据森麟公众号的交流群已经建立,许多小伙伴已经加入其中,感谢大家的支持。大家可以在群里交流关于数据分析&数据挖掘的相关内容,还没有加入的小伙伴可以扫描下方管理员二维码,进群前一定要关注公众号奥,关注后让管理员帮忙拉进群,期待大家的加入。

管理员二维码:


猜你喜欢

● 麟哥拼了!!!亲自出镜推荐自己新书《数据分析师求职面试指南》● 厉害了!麟哥新书登顶京东销量排行榜!● 笑死人不偿命的知乎沙雕问题排行榜
● 用Python扒出B站那些“惊为天人”的阿婆主!● 你相信逛B站也能学编程吗点击阅读原文,即可参与京东100-50购书活动
### 回答1: Python项目实战:使用PySpark大数据进行分析 PySpark是一个基于Python的Spark API,它提供了一种分布式计算框架,可以用于处理大规模数据集。使用PySpark,可以轻松地对大数据进行分析和处理,从而提高数据分析的效率和准确性。 在实际项目中,使用PySpark进行大数据分析可以帮助我们更好地理解数据,发现数据中的规律和趋势,从而为业务决策提供更加准确的依据。同时,PySpark还可以帮助我们处理数据中的异常值和缺失值,提高数据的质量和可靠性。 总之,使用PySpark进行大数据分析是一项非常有价值的技能,可以帮助我们更好地应对现代数据分析的挑战。 ### 回答2: 随着互联网的飞速发展,数据的产生量越来越大,如何处理大数据是一个非常重要的问题。Python是目前主流的编程语言之一,尤其是在数据科学、机器学习、人工智能等领域广受欢迎。pyspark是Apache Spark的Python API,它提供了一个基于内存的分布式计算框架,可以处理大规模数据集,并且具有高性能、易于使用、可扩展的特点。 使用pyspark大数据进行分析,我们可以使用Spark分布式内存计算引擎,在集群中并行计算数据,并为大数据应用提供高效的解决方案。pyspark提供了丰富的API,可以实现对大数据的探索性分析、数据预处理、特征工程、模型训练和预测等操作。 在进行大数据分析前,首先需要创建SparkSession对象,这个对象是通往Spark的入口。接下来可以读取数据集,并进行一系列的数据清洗、转换等操作。常用的数据处理操作包括:数据过滤、数据映射、数据排序、数据聚合等。 在进行特征工程时,pyspark提供了大量的内置函数和转换操作,如Tokenizer、StopWordsRemover、VectorAssembler、StringIndexer等。可以使用这些函数将原始数据集转换为模型可用的特征向量。 对于大规模的数据集训练机器学习模型,pyspark提供了分布式的算法库,如线性回归、逻辑回归、决策树、随机森林、支持向量机、Gradient-Boosted Trees等。可以选择合适的算法库进行数据建模和预测,同时也可以根据需要扩展定制化算法库。 pyspark的强大功能让我们能够处理超大规模数据集,从而能够快速、高效地进行大数据分析。因此,学习pyspark对于数据科学家和数据工程师来说变得越来越重要,对于数据分析和挖掘等领域也有着巨大的应用前景。 ### 回答3: 随着大数据时代的到来,大数据分析已经成为了一个趋势。在处理大量数据时,传统的数据处理方式已经无法满足需求。而pyspark则成为了处理大数据的良好工具之一。pyspark是一个基于Apache Spark框架的Python API。采用大数据技术将数据分布式并行处理,具有高效、快速、可靠的特点。在处理大数据时,pyspark能使数据处理过程变得更加便捷和高效。 使用pyspark进行大数据分析时,需要先了解spark框架的运行方式。Spark框架是由一个 Driver程序和多个Executor程序组成。Driver程序负责任务分配和控制,而Executor程序负责具体的数据分析。在Driver程序中,通过pyspark编写代码进行数据处理和分析。数据处理的过程包括数据清洗、转换、过滤和计算等步骤。而在数据分析时,采用了三个重要的API:RDD、DataFrame和DataSet。 其中RDD是一种数据结构,表示“弹性分布式数据集”。RDD的特点是不可变性、分布式、容错性和操作性等。通过RDD来重复读取数据,对数据集进行处理和分析等操作。DataFrame是一种分布式数据表,类似于关系型数据库的表结构。通过DataFrame能够处理一些非结构化的数据。DataSet则是RDD和DataFrame的结合体,用于处理更加复杂的数据分析,如机器学习等。 在实现pyspark大数据分析时,需要掌握一些重要的指令和API。常用的指令包括map、filter、reduce、flatMap等。这些指令能够帮助我们进行数据清洗、转换和过滤等操作。同时,pyspark还提供了一些高级的API如join、groupByKey、reduceByKey等。这些API可以用于处理和统计大量数据。 总之,pyspark的出现为我们提供了一种高效、便捷的方法来处理大数据。在实际的应用中,我们可以利用pyspark进行数据清洗、转换、过滤和计算等操作,实现数据的高效分析和处理。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值