Python安装spark的详细过程
作者:奋斗的源 发布时间:2021-05-17 09:59:05
一.配置版本
Java JDK 1.8.0_111
Python 3.9.6
Spark 3.1.2
Hadoop 3.2.2
二.配置环境
1.配置JDK
从官网下载相应JDK的版本安装,并进行环境变量的配置
(1)在系统变量新建JAVA_HOME,根据你安装的位置填写变量值
(2)新建CLASSPATH
变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;(注意前面所需的符号)
(3)点击Path
在其中进行新建:%JAVA_HOME%\bin
(4)配置好后进行确定
(5)验证,打开cmd,输入java -version和javac进行验证
此上说明jdk环境变量配置成功
2.配置Spark
(1)下载安装:
Spark官网:spark-3.1.2-bin-hadoop3.2下载地址
(2)解压,配置环境
(3)点击Path,进行新建:%SPARK_HOME%\bin,并确认
(4)验证,cmd中输入pyspark
这里提醒我们要安装Hadoop
3.配置Hadoop
(1)下载:
Hadoop官网:Hadoop 3.2.2下载地址
(2)解压,配置环境
注意:解压文件后,bin文件夹中可能没有以下两个文件:
下载地址:https://github.com/cdarlint/winutils
配置环境变量CLASSPATH:%HADOOP_HOME%\bin\winutils.exe
(3)点击Path,进行新建:%HADOOP_HOME%\bin,并确认
(4)验证,cmd中输入pyspark
由上可以看出spark能运行成功,但是会出现如下警告:
WARN ProcfsMetricsGetter: Exception when trying to compute pagesize, as a result reporting of ProcessTree metrics is stopped
这里因为spark为3.x版本有相关改动,使用spar2.4.6版本不会出现这样的问题。
不改版本解决方式(因是警告,未尝试):
方式一:解决方法一
方式二:解决方法二
三.Pycharm配置spark
(1)Run–>Edit Configurations
(2)对Environment Variables进行配置
(3)File–>Settings–>Project Structure–>Add Content Root
找到spark-3.1.2-bin-hadoop3.2\python\lib下两个包进行添加
选择结果:
(4)测试
# 添加此代码,进行spark初始化
import findspark
findspark.init()
from datetime import datetime, date
from pyspark.sql import SparkSession
spark = SparkSession.builder.getOrCreate()
rdd = spark.sparkContext.parallelize([
(1, 2., 'string1', date(2000, 1, 1), datetime(2000, 1, 1, 12, 0)),
(2, 3., 'string2', date(2000, 2, 1), datetime(2000, 1, 2, 12, 0)),
(3, 4., 'string3', date(2000, 3, 1), datetime(2000, 1, 3, 12, 0))
])
df = spark.createDataFrame(rdd, schema=['a', 'b', 'c', 'd', 'e'])
df.show()
运行结果:
四.使用anconda中python环境配置spark
1.创建虚拟环境
conda create -n pyspark_env python==3.9.6
查看环境:
conda env list
运行结果:
2.安装pyspark
切换到pyspark_env并进行安装pyspark
pip install pyspark
3.环境配置
运行上面的实例,会出现以下错误:
这说明我们需要配置py4j,SPARK_HOME
SPARK_HOME:
PYTHONPATH设置:
HADOOP_HOME设置:
path中设置:
4.运行
# 添加此代码,进行spark初始化
import findspark
findspark.init()
from datetime import datetime, date
from pyspark.sql import SparkSession
spark = SparkSession.builder.getOrCreate()
rdd = spark.sparkContext.parallelize([
(1, 2., 'string1', date(2000, 1, 1), datetime(2000, 1, 1, 12, 0)),
(2, 3., 'string2', date(2000, 2, 1), datetime(2000, 1, 2, 12, 0)),
(3, 4., 'string3', date(2000, 3, 1), datetime(2000, 1, 3, 12, 0))
])
df = spark.createDataFrame(rdd, schema=['a', 'b', 'c', 'd', 'e'])
df.show()
运行结果同上
来源:https://blog.csdn.net/yuanfate/article/details/120706537


猜你喜欢
- PDOStatement::errorCodePDOStatement::errorCode — 获取跟上一次语句句柄操作相关的 SQLST
- 很多现代的浏览器在地址栏的右边有个搜索框,默认的安装有 Google 搜索等。如下图所示:其实这是 OpenSearch 的一个应用,只要编
- 在节点之间再应用一些排序逻辑,二叉树就能提供出色的组织方式。对于每个节点,都让满足所有特定条件的元素都位于左节点及其子节点。在插入新元素时,
- 本篇文档旨在介绍如何安装配置基于2台服务器的MySQL集群。并且实现任意一台服务器出现问题或宕机时MySQL依然能够继续运行。注意!虽然这是
- 如果能,请问如何实现 谢谢set aa=server.cre
- 增加异常捕获,更容易现问题的解决方向import sslimport urllib.requestfrom bs4 import Beaut
- 如果你经常与Excel或Word打交道,那么从两份表格/文档中找到不一样的元素是一件让人很头疼的工作,当然网上有很多方法、第三方软件教你如何
- Python OpenCV存储图像使用的是Numpy存储,所以可以将Numpy当做图像类型操作,操作之前还需进行类型转换,转换到int8类型
- 如何制作一个搜索引擎链接程序?多收集几个网站的,然后我们引用它到自己的页面中。接下来,我们要创建页面用于搜索:<center>&
- 一般情况下,URL 中的参数应使用 url 编码规则,即把参数字符串中除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位
- 如何查看MySQL初始密码问题在安装MySQL过程中,以管理员身份运行cmd后进入MySQL的bin目录,然后输入命令“
- 由于这个数据库服务器存放的数据库比较多且都是小数据库,所以最初的时候是运行在windows服务器上的。前一段时间由于机房服务器要做调整,于是
- 查了查《VBSCRIPT 速查手册》InstrRev的用法:InstrRev函数,功能:返回某字符串在另一个字符串中出现的从结尾计起的位置语
- 我在代码里定义了两个通道,分别用于生产端口和限制连接数,如果不限制连接数,容易被对方检测到或导致对方服务器不能正常运行。// 生产端口var
- 本文实例为大家分享了vue+AI智能机器人回复的具体代码,供大家参考,具体内容如下操作步骤引入前端代码前端代码是参考github上的一个开源
- 下载https://downloads.mysql.com/archives/community/下载上面的,下面的不行解压我的解压路径 E
- 本文实例讲述了Python实现获取命令行输出结果的方法。分享给大家供大家参考,具体如下:Python获取命令行输出结果,并对结果进行过滤找到
- 一般说到组件,我首先想到的是弹窗,其他就大脑空白了。因为觉得这个是在项目中最常用的功能,提取出来方便复用的才是组件~然而我才发现这个想法是有
- 本文针对ThinkPHP中pathinfo的两种模式、四种路径访问模式和URL重写相关知识进行了总结归纳,分享给大家便于查询和借鉴。具体归纳
- 1. 需求vs现状1.1 需求要求做一个ERP后台辅助管理的程序,有以下几项基本要求:1. 基本的增删改查功能2. 基于对象的权限控制(如: