- 轻松切换到pandas API和PySpark API上下文,无需任何开销。
- 有一个既适用于pandas(测试,较小的数据集)又适用于Spark(分布式数据集)的代码库。
- 熟练使用pandas的话很快上手
3.Streaming
Apache Spark中的Streaming功能运行在Spark之上,支持跨Streaming和历史数据的强大交互和分析应用程序,同时继承了Spark的易用性和容错特性。Spark Streaming是将流式计算分解成一系列短小的批处理作业。这里的批处理引擎是Spark Core,也就是把Spark Streaming的输入数据按照batch size(如1秒)分成一段一段的数据(Discretized Stream),每一段数据都转换成Spark中的RDD(Resilient Distributed Dataset),然后将Spark Streaming中对DStream的Transformation操作变为针对Spark中对RDD的Transformation操作,将RDD经过操作变成中间结果保存在内存中。
4.MLBase/MLlib
MLlib构建在Spark之上,是一个可扩展的机器学习库,它提供了一组统一的高级API,帮助用户创建和调整实用的机器学习管道。MLBase分为四部分:MLlib、MLI、ML Optimizer和MLRuntime。
- ML Optimizer会选择它认为最适合的已经在内部实现好了的机器学习算法和相关参数,来处理用户输入的数据,并返回模型或别的帮助分析的结果;
- MLI 是一个进行特征抽取和高级ML编程抽象的算法实现的API或平台;
- MLlib是Spark实现一些常见的机器学习算法和实用程序,包括分类、回归、聚类、协同过滤、降维以及底层优化,该算法可以进行可扩充; MLRuntime 基于Spark计算框架,将Spark的分布式计算应用到机器学习领域。
5.Spark Core
Spark Core是Spark平台的底层通用执行引擎,所有其他功能都构建在其之上。它提供了RDD(弹性分布式数据集)和内存计算能力。
二、PySpark依赖
Dependencies
Package最低版本限制Notepandas1.0.5支撑Spark SQLNumpy1.7满足支撑MLlib基础APIpyarrow1.0.0支撑Spark SQLPy4j0.10.9.5要求pandas1.0.5pandas API on Spark需要pyarrow1.0.0pandas API on Spark需要Numpy1.14pandas API on Spark需要
请注意,PySpark需要Java 8或更高版本,并正确设置Java_HOME。如果使用JDK 11,请设置
Dio.netty.tryReflectionSetAccessible=true
以获取与箭头相关的功能。
AArch64(ARM64)用户注意:PyArrow是PySpark SQL所必需的,但PyArrow 4.0.0中引入了对AArch64的PyArrow支持。如果由于PyArrow安装错误导致PyArrow安装在AArch64上失败,可以按如下方式安装PyArrow>=4.0.0:
pip install "pyarrow>=4.0.0" --prefer-binary
三、DataFrame
PySpark应用程序从初始化SparkSession开始,SparkSession是PySpark的入口点,如下所示。如果通过PySpark可执行文件在PySpark shell中运行它,shell会自动在变量spark中为用户创建会话。
from pyspark.sql import SparkSession
spark = SparkSession.builder.getOrCreate()
1.创建
PySpark DataFrame能够通过pyspark.sql.SparkSession.createDataFrame创建,通常通过传递列表(list)、元组(tuples)和字典(dictionaries)的列表和pyspark.sql.Rows,Pandas DataFrame,由此类列表组成的RDD转换。pyspark.sql.SparkSession.createDataFrame接收schema参数指定DataFrame的架构(优化可加速)。省略时,PySpark通过从数据中提取样本来推断相应的模式。
创建不输入schema格式的DataFrame
from datetime import datetime, date
import pandas as
版权归原作者 2401_84181403 所有, 如有侵权,请联系我们删除。