Python大数据之PySpark-CSDN博客
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
PySpark入门
1、Spark与PySpark
Apache Spark是一种用于大规模数据处理的多语言统一引擎,用于在单节点机器或集群上执行数据工程、数据科学和机器学习
Spark官网:https://spark.apache.org/
按照官网描述,Spark关键特征包括:
-
批/流处理
Spark支持您使用喜欢的语言:Python、SQL、Scala、Java或R,统一批量和实时流处理数据 -
SQL分析
执行快速、分布式ANSI SQL查询以进行BI仪表板和临时报告。运行速度比大多数数据仓库更快 -
大规模数据科学
对PB级数据执行探索性数据分析(EDA),而无需采用降采样(缩减采样) -
机器学习
在笔记本电脑上训练机器学习算法,并使用相同的代码扩展到数千台机器的容错集群
Apache Spark与多种框架集成,有助于将其扩展到数千台机器
Apache Spark支持的存储和基础设施有:
根据Spark官网,Spark支持Python语言编程
PySpark是Spark为Python开发者提供的API,PySpark依赖于Py4J
Py4J是一个用Python和Java编写的库。通过Py4J,Python程序能够动态访问Java虚拟机 中的Java对象,Java程序也能够回调Python对象
PySpark是Spark官方提供的基于Python语言开发的类库,仅支持在本地Local模式环境下供Python用户开发使用
PySpark官网文档:https://spark.apache.org/docs/3.1.2/api/python/getting_started
2、PySpark开发环境搭建
1)Hadoop的Windows环境配置
由于Hadoop主要基于Linux编写,而Hive、Spark等依赖于Hadoop,因此,Hadoop在Windows上运行需要winutils.exe
和hadoop.dll
等文件的支持,winutils.exe
和hadoop.dll
等文件必须放置在bin目录下,主要用于模拟Linux下的目录环境
下载地址:后续补充
配置Hadoop的Windows环境变量:
HADOOP_HOME=D:\Software\Hadoop\hadoop-2.7.7
Path=%HADOOP_HOME%\bin
2)PySpark环境搭建
在PyCharm终端安装PySpark模块:
pip install pyspark==3.1.2
配置HPySpark的Windows环境变量:
PYSPARK_PYTHON=python
PYSPARK_DRIVER_PYTHON=jupyter
PYSPARK_DRIVER_PYTHON_OPTS=lab
当未配置配置PySpark的Windows环境变量时将报错:
org.apache.spark.SparkException: Python worker failed to connect back.
解决:至少确保配置PYSPARK_PYTHON=python该Windows系统环境变量(配置后需要重启PyCharm)
3)PySpark环境验证
Windows+R,输入cmd执行命令:
spark-shell
成功打印Spark版本说明环境配置成功
3、PySpark的工作机制
其中Driver是客户端任务,Executor负责执行具体Task,用户将Spark任务程序Driver提交给资源管理系统(如Yarn、K8s等),Spark会将程序分解为一个个的Task交给Executor执行
为了不影响现有Spark的运行架构,Spark在外围包装了一层Python的API,借助Py4j实现Python和Java的交互,即通过Py4j将PySpark代码“解析”到JVM中去运行
在Driver端,Python通过Py4j来调用Java方法,将用户使用Python写的程序映射到JVM中,比如,用户在PySpark中实例化一个Python的SparkContext对象,最终会在JVM中实例化Scala的SparkContext对象
在Executor端,都启动一个Python守护进程,当Task收到任务请求后,交给底层的Python进程去执行
4、PySpark批处理
SparkConf是Spark批处理的程序主入口
PySpark单词统计案例:
from pyspark import SparkContext, SparkConf
conf = SparkConf().setMaster("local[*]&#
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |