【Python】PySpark 数据处理 ② ( 安装 PySpark | PySpark 数据处理步骤 | 构建 PySpark 执行环境入口对象 )

2023-07-29 23:21:17





一、安装 PySpark




1、使用 pip 安装 PySpark


执行 Windows + R , 运行 cmd 命令行提示符 ,

在这里插入图片描述

在命令行提示符终端中 , 执行

pip install pyspark

命令 , 安装 PySpark , 安装过程中 , 需要下载 310 M 的安装包 , 耐心等待 ;

在这里插入图片描述

安装完毕 :

在这里插入图片描述

命令行输出 :

C:\Users\octop>pip install pyspark
Collecting pyspark
  Downloading pyspark-3.4.1.tar.gz (310.8 MB)
     |████████████████████████████████| 310.8 MB 126 kB/s
Collecting py4j==0.10.9.7
  WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProtocolError('Connection aborted.', ConnectionResetError(10054, '远程主机强迫关闭了一个现有的连接。', None, 10054, None))': /packages/10/30/a58b32568f1623aaad7db22aa9eafc4c6c194b429ff35bdc55ca2726da47/py4j-0.10.9.7-py2.py3-none-any.whl
  Downloading py4j-0.10.9.7-py2.py3-none-any.whl (200 kB)
     |████████████████████████████████| 200 kB 1.1 MB/s
Using legacy setup.py install for pyspark, since package 'wheel' is not installed.
Installing collected packages: py4j, pyspark
    Running setup.py install for pyspark ... done
Successfully installed py4j-0.10.9.7 pyspark-3.4.1
WARNING: You are using pip version 20.1.1; however, version 23.2.1 is available.
You should consider upgrading via the 'y:\001_developtools\015_python\python37\python.exe -m pip install --upgrade pip' command.

C:\Users\octop>

2、国内代理镜像


如果使用 官方的源 下载安装 PySpark 的速度太慢 ,

可以使用 国内的 镜像网站 https://pypi.tuna.tsinghua.edu.cn/simple/ ,

这是清华大学提供的源 ;

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyspark

3、PyCharm 中安装 PySpark


也可以参考 【Python】pyecharts 模块 ② ( 命令行安装 pyecharts 模块 | PyCharm 安装 pyecharts 模块 ) 博客 , 在 PyCharm 中 , 安装 PySpark ;

尝试导入 pyspack 模块中的类 , 如果报错 , 使用报错修复选项 , PyCharm 会自动安装 PySpark ;

在这里插入图片描述





二、PySpark 数据处理步骤



PySpark 编程时 , 先要构建一个 PySpark 执行环境入口对象 , 然后开始执行数据处理操作 ;

数据处理的步骤如下 :

首先 , 要进行数据输入 , 需要读取要处理的原始数据 , 一般通过 SparkContext 执行环境入口对象 执行 数据读取操作 , 读取后得到 RDD 类实例对象 ;

然后 , 进行 数据处理计算 , 对 RDD 类实例对象 成员方法进行各种计算处理 ;

最后 , 输出 处理后的结果 , RDD 对象处理完毕后 , 写出文件 , 或者存储到内存中 ;

在这里插入图片描述


数据的初始形态 , 一般是 JSON 文件 , 文本文件 , 数据库文件 ;

通过 SparkContext 读取 原始文件 到 RDD 中 , 进行数据处理 ;

数据处理完毕后 , 存储到 内存 / 磁盘 / 数据库 中 ;

在这里插入图片描述





三、构建 PySpark 执行环境入口对象



如果想要使用 PySpark 进行数据处理 , 必须构建一个 PySpark 执行环境入口对象 ;

PySpark 执行环境 入口对象 是 SparkContext 类实例对象 ;


首先 , 导入相关包 ;

# 导入 PySpark 相关包
from pyspark import SparkConf, SparkContext

然后 , 创建 SparkConf 实例对象 , 该对象用于配置 Spark 任务 , 各种配置可以在链式调用中设置 ;

  • 调用 SparkConf#setMaster 函数 , 可以设置运行模式 , 单机模式 / 集群模式 ;
  • 调用 SparkConf#setAppName函数 , 可以设置 Spark 程序 名字 ;
# 创建 SparkConf 实例对象 , 该对象用于配置 Spark 任务
# setMaster("local[*]") 表示在单机模式下 本机运行
# setAppName("hello_spark") 是给 Spark 程序起一个名字
sparkConf = SparkConf()\
    .setMaster("local[*]")\
    .setAppName("hello_spark")

再后 , 创建 PySpark 执行环境 入口对象 ;

# 创建 PySpark 执行环境 入口对象
sparkContext = SparkContext(conf=sparkConf)

最后 , 执行完 数据处理 任务后 , 调用 SparkContext#stop 方法 , 停止 Spark 程序 ;

# 停止 PySpark 程序
sparkContext.stop()




四、代码示例



代码示例 :

"""
PySpark 数据处理
"""

# 导入 PySpark 相关包
from pyspark import SparkConf, SparkContext

# 创建 SparkConf 实例对象 , 该对象用于配置 Spark 任务
# setMaster("local[*]") 表示在单机模式下 本机运行
# setAppName("hello_spark") 是给 Spark 程序起一个名字
sparkConf = SparkConf()\
    .setMaster("local[*]")\
    .setAppName("hello_spark")

# 创建 PySpark 执行环境 入口对象
sparkContext = SparkContext(conf=sparkConf)

# 打印 PySpark 版本号
print(sparkContext.version)

# 停止 PySpark 程序
sparkContext.stop()

执行结果 :

Y:\002_WorkSpace\PycharmProjects\pythonProject\venv\Scripts\python.exe Y:/002_WorkSpace/PycharmProjects/HelloPython/hello.py
23/07/29 23:08:04 WARN Shell: Did not find winutils.exe: java.io.FileNotFoundException: java.io.FileNotFoundException: HADOOP_HOME and hadoop.home.dir are unset. -see https://wiki.apache.org/hadoop/WindowsProblems
Setting default log level to "WARN".
To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).
23/07/29 23:08:04 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
3.4.1

Process finished with exit code 0

在这里插入图片描述

更多推荐

android 逆向去广告工具和流程

主要用到的软件:1、安卓修改大师:有很多功能,但有会员限制。好用的是字符查找后,可以在smali和java切换2、apktool:反编译、回编译工具。但是是命令行方式3、jadx-gui-1.4.7-no-jre-win反编译成java,非常好用4、AndroidKiller_v1.3.1:反编译有些不正常,签名后,在

SpringMVC

目录SpringMVC体系结构SpringMVC配置注解@Controller@RequestMapping@RequestParam@RequestBody@SessionAttributes@DateTimeFormat@ResponseBodySpringMVC体系结构(1)首先浏览器发送请求——>Dispatc

Linux的调试工具 - gdb(超详细)

Linux的调试工具-gdb1.背景2.开始使用指令的使用都用下面这个C语言简单小代码来进行演示:1.list或l行号:显示文件源代码,接着上次的位置往下列,每次列10行。2.list或l函数名:列出某个函数的源代码。3.r或run:运行程序。4.break或b行号:在某一行设置断点5.n或next:单条执行(类似vs

RK3568驱动指南|第五篇 中断-第42章 软中断实验

瑞芯微RK3568芯片是一款定位中高端的通用型SOC,采用22nm制程工艺,搭载一颗四核Cortex-A55处理器和MaliG522EE图形处理器。RK3568支持4K解码和1080P编码,支持SATA/PCIE/USB3.0外围接口。RK3568内置独立NPU,可用于轻量级人工智能应用。RK3568支持安卓11和li

快速排序模拟实现

快速排序,时间复杂度为O(NlogN),属于排序中相对快的那一列,以下是快排的模拟实现:法一:左右指针交换法voidswap(int*x,int*y){inttmp=*x;*x=*y;*y=tmp;}//交换函数intgetmid(int*a,intleft,intright){intmid=(left+right)/

【错误记录】IntelliJ IDEA 导出可执行 jar 包执行报错 ( java.lang.ClassNotFoundException | 打包时没有选择依赖库 )

文章目录一、报错信息二、解决方案一三、解决方案二一、报错信息参考【IntelliJIDEA】导出可执行JAR包博客,从IntelliJIDEA中导出可执行JAR包;执行菜单栏/Build/BuildArtifacts选项,编译Module中配置的artifacts项目;编译完成artifacts后,进入到工程目录\ou

汽配制造问题以及MES管理系统解决方案

在汽车工业中,零部件制造与整车制造有着显著的不同。这些差异导致了零部件制造的复杂性和高要求,使其成为一个高度综合的最终产品。本文将详细介绍这些差异以及针对这些差异的解决方案。一、行业特点决定需求汽车配件制造与整车制造存在较大不同。在整车制造过程中,装配是最复杂的环节,而在零部件制造过程中,装配所占的比重较小,机加等前端

XSS跨站脚本攻击

XSS全称(CrossSiteScripting)跨站脚本攻击,XSS属于客户端攻击,受害者最终是用户,在网页中嵌入客户端恶意脚本代码,最常用javascript语言。(注意:叠成样式表CSS已经被占用所以叫XSS)原因:输入没过滤,输出没编码。危害:劫持用户cookie,钓鱼,挂马分类:1、反射性XSS(中危,一次性

肖sir__项目环境之全流程__005

一、测试流程(h模型)1、需求文档(产品)需求文档(软件需求规格说明书srs)(1)如何分析需求a、显示需求(主流程、功能,业务)b、隐性需求(比如:红包记录,扣款金额=发送金额)c、特殊需求(计算:保费计算,还款计算)d、关联需求(满减活动:活动订单,活动增加,)(2)需求特殊a、完整性:功能的实现和设计信息齐全b、

API接口:概述、设计、应用与未来趋势

一、API接口概述API,全称应用程序接口,是一种软件程序之间的通信方法。API接口在互联网开发中扮演着重要角色,允许不同的应用程序相互交流和共享数据。API定义了一套标准的通信协议,使得开发人员能够使用特定的函数、方法或协议来交换信息。二、API接口设计RESTfulAPIRESTfulAPI是当前最流行的一种API

【SpringMVC】自定义注解与AOP结合使用

目录一、SpringMVC之自定义注解1.1Java注解简介1.2为什么要用注解1.3注解的分类⭐1.3.1JDK基本注解1.3.2JDK元注解1.3.3自定义注解1.4自定义注解三种使用案例1.4.1案例一(获取类与方法上的注解值)1.4.2案例二(获取类属性上的注解属性值)1.4.3案例三(获取参数修饰注解对应的属

热文推荐