【pyspark+spark-hadoop】Windows环境下配置spark-hadoop

Windows环境下配置pyspark

相信许多朋友在配置环境的时候都遇到各种坑,这篇文章就系统的来描述一下spark-hadoop在python里运用时的相关配置流程。

工具准备

  • python3.7
  • jdk1.8
  • spark-2.3.2-bin-hadoop2.7
  • pyspark 2.3.2

刚开始配置环境的时候,我自己用的是Anaconda下3.8的python环境加上jdk14.0.2和pyspark 3.0
以至于在环境配置的时候总是出现一大堆错误而且应用互联网上的方法大都没结果,所以在配置环境前要保证版本的问题,这也是最主要的问题

链接自取

jdk链接: https://pan.baidu.com/s/1EEFs1YfuLc14Wa3IDr-ZwQ 提取码: b5pg 复制这段内容后打开百度网盘手机App,操作更方便哦
spark:https://archive.apache.org/dist/spark/spark-2.3.2/spark-2.3.2-bin-hadoop2.7.tgz
pyspark:pip install --index-url https://mirrors.aliyun.com/pypi/simple/ pypandoc
pip install --index-url https://mirrors.aliyun.com/pypi/simple/ pyspark==2.3.2

环境配置

JAVA_HOME
JAVA_HOME:jdk安装文件夹的根目录

SPARK_HOME
SPARK_HOME:文件解压的根目录

PYSPARK_PYTHON
PYSPARK_PYTHON:pip所安装的pyspark的环境下的python.exe文件

path
path:添加bin目录

测试环境

cmd:

  • java
  • javac

确定jdk是否配置正确
提醒:不需要测试spark-shell,就算报错了也没关系,我们只是在pycharm下测试就好了
test.py

from pyspark import SparkContext

sc = SparkContext("local")
rdd = sc.parallelize([1,2,3,4,5,6])
print(rdd.collect())

结果为:[1, 2, 3, 4, 5, 6] 就配置成功

错误排除

py4j.protocol.Py4JJavaError: An error occurred while calling z:org.apache.spark.api.python.PythonRDD.runJob.
: org.apache.spark.SparkException: Job 0 cancelled because SparkContext was shut down

在这里这基本上就是jdk的版本问题,将jdk进行降级就好了

py4j.protocol.Py4JError: org.apache.spark.api.python.PythonUtils.getEncryptionEnabled does not exist in the JVM

这个错误是pyspark版本与spark-hadoop版本问题
解决方法:

  1. 将pyspark降级到与spark-hadoop相同版本;
    如果在pyspark降级后重新安装低版本出现错误,可按照我上方的pyspark命令进行安装即可
  2. 在代码顶部加上
	import findspark
	findspark.init()

TypeError:an integer is required (got type bytes)?

这个问题在我看来就是python版本的问题,在之前的3.8中有出现

总结

pyspark在windows环境下的安装,最重要的就是版本兼容问题,只要将版本弄好,按正常流程下来是没问题的。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值