Python安装spark的详细过程

 更新时间:2021年10月16日 13:52:17   作者:奋斗的源  
这篇文章主要介绍了Python安装spark的详细过程,本文通过图文实例代码相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

一.配置版本

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()

运行结果同上

到此这篇关于Python安装spark的文章就介绍到这了,更多相关Python安装spark内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 使用Python发送邮件附件以定时备份MySQL的教程

    使用Python发送邮件附件以定时备份MySQL的教程

    这篇文章主要介绍了使用Python发送邮件附件以定时备份MySQL的教程,本文的示例基于CentOS,需要的朋友可以参考下
    2015-04-04
  • python 中的pycrypto 算法加密

    python 中的pycrypto 算法加密

    这篇文章主要介绍了python 中的pycrypto 算法加密,文章基于python的相关资料展开对pycrypto 算法加密的详细介绍,需要的小伙伴可以参考一下
    2022-04-04
  • 详解python中的time和datetime的常用方法

    详解python中的time和datetime的常用方法

    Python time time() 返回当前时间的时间戳(1970纪元后经过的浮点秒数)。这篇文章主要介绍了python之time和datetime的常用方法 ,需要的朋友可以参考下
    2019-07-07
  • pytorch中dataloader 的sampler 参数详解

    pytorch中dataloader 的sampler 参数详解

    这篇文章主要介绍了pytorch中dataloader 的sampler 参数详解,文章围绕主题展开详细的内容介绍,具有一定的参考价值,感兴趣的小伙伴可以参考一下
    2022-09-09
  • NetWorkX使用方法及nx.draw()相关参数解读

    NetWorkX使用方法及nx.draw()相关参数解读

    这篇文章主要介绍了NetWorkX使用方法及nx.draw()相关参数解读,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • Pandas 中的join函数应用实现删除多余的空行

    Pandas 中的join函数应用实现删除多余的空行

    这篇文章主要介绍了Pandas 中的join函数应用实现删除多余的空行,str.join也就是sequence要连接的元素序列,下面我们来看看他的作用实现删除多余的空行,需要的小伙伴可以参考一下
    2022-02-02
  • Django 批量插入数据的实现方法

    Django 批量插入数据的实现方法

    这篇文章主要介绍了Django 批量插入数据的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • Python中如何替换字典中的值

    Python中如何替换字典中的值

    这篇文章主要介绍了Python中替换字典中的值,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-03-03
  • 详解python 爬取12306验证码

    详解python 爬取12306验证码

    这篇文章主要介绍了python爬取12306验证码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05
  • 浅谈Django前端后端值传递问题

    浅谈Django前端后端值传递问题

    这篇文章主要介绍了浅谈Django前端后端值传递问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07

最新评论