目录
1.什么是pyspark
PySpark是一个用Python编写的Spark库,用于使用Apache Spark功能运行Python应用程序,使用PySpark,我们可以在分布式集群(多个节点)上并行运行应用程序。
换句话说,PySpark是用于Apache Spark的Python API。 Apache Spark是一个分析处理引擎,用于大规模,强大的分布式数据处理和机器学习应用程序。
Spark基本上是用Scala编写的,后来由于其行业适应性,它使用Py4J为Python发布了API PySpark。 Py4J是一个集成在PySpark中的Java库,它允许python动态与JVM对象交互,因此要运行PySpark,还需要将Java与Python和Apache Spark一起安装。
此外,对于开发而言,您可以使用Anaconda发行版(在机器学习社区中广泛使用),该发行版附带了许多有用的工具,例如Spyder IDE,Jupyter笔记本,以运行PySpark应用程序。
实时而言,PySpark在机器学习和数据科学家社区中使用很多; 感谢庞大的python机器学习库。 与传统的python应用程序相比,Spark在分布式群集上处理数十亿亿万个数据的操作要快100倍。
2.pyspark的特点
- 内存计算
- 使用并行化进行分布式处理
- 可以与许多集群管理器(Spark,Yarn,Mesos等)一起使用
- 容错的
- 一成不变的
- 懒惰评估
- 缓存和持久性
- 使用DataFrame时进行内部优化
- 支持ANSI SQL
3.pyspark的优点
- PySpark是一种通用的内存中分布式处理引擎,可让您以分布式方式高效地处理数据。
- 在PySpark上运行的应用程序比传统系统快100倍。
- 使用PySpark进行数据提取管道将为您带来巨大的好处。
- 使用PySpark,我们可以处理Hadoop HDFS,AWS S3和许多文件系统中的数据。
- PySpark还用于使用Streaming和Kafka处理实时数据。
- 使用PySpark流媒体,您还可以从文件系统流媒体文件,也可以从套接字流媒体文件。
- PySpark本身具有机器学习和图形库。
4.pyspark架构
Apache Spark在主从结构中工作,其中主服务器称为“驱动程序”,而从服务器称为“工作程序”。 当您运行Spark应用程序时,Spark驱动程序会创建一个上下文,该上下文是您应用程序的入口点,并且所有操作(转换和操作)都在辅助节点上执行,并且资源由Cluster Manager管理。
其中,Cluster Manager Types
- Standalone – a simple cluster manager included with Spark that makes it easy to set up a cluster.
- Apache Mesos – Mesons is a Cluster manager that can also run Hadoop MapReduce and PySpark applications.
- Hadoop YARN – the resource manager in Hadoop 2. This is mostly used, cluster manager.
- Kubernetes – an open-source system for automating deployment, scaling, and management of containerized applications.
- local – which is not really a cluster manager but still I wanted to mention as we use “local” for
master()
in order to run Spark on your laptop/computer.
5.pyspark的模块
- PySpark RDD (pyspark.RDD)
- PySpark DataFrame and SQL (pyspark.sql)
- PySpark Streaming (pyspark.streaming)
- PySpark MLib (pyspark.ml, pyspark.mllib)
- PySpark GraphFrames (GraphFrames)
- PySpark Resource (pyspark.resource) It’s new in PySpark 3.0
6.pyspark的安装
- 安装python,可选择Anaconda安装
- 安装Java 8
- 安装Apache Spark