填坑之pyspark在jupyter中运行报错及spark依赖python版本切换等

在ubantu成功安装配置spark等组件后,去pyspark编辑脚本运行,报出错误:Exception: Java gateway process exited before sending the driver its port number

尝试了大神建议的很多方法都没有解决,如配置JAVA_HOME路径、重装Java版本1.8等等,还有人说用anaconda可以完美解决,但懒于下载配置,且个人感觉annaconda较卡顿,在虚拟机中更是无法忍受。

继续在bashrc中配置:

export PYSPARK_SUBMIT_ARGS="--master local[2] pyspark-shell"          source .bashrc  刷新

至此jupyter notebook 打开浏览器可以正常编辑运行脚本了。

有时想打开pyspark后直接打开jupyter,可以这样设置:

export PYSPARK_DRIVER_PYTHON=jupyter-notebook
export PYSPARK_DRIVER_PYTHON_OPTS=" --ip=0.0.0.0 --port=0"  注:IP主机地址与端口在spark启动日志里可以查看,然后填上。

source .bashrc  刷新

spark内置的python的版本是2的版本,现在我想把python的版本切换成3的版本,步骤如下:

1.修改spark-env.sh文件,在末尾添加export PYSPARK_PYTHON=/usr/bin/python3。

2.修改spark安装包bin目录下的pyspark,将原来PYSPARK_PYTHON=python改成PYSPARK_PYTHON=python3。

3、如果是集群其它子节点也都要修改。

4、重启,可见修改成功。

 

还有另外一种报错比较奇怪,在pyspark命令行运行没有问题,但在jupyter中运行就报错,如:

intRDD = sc.parallelize([3,1,2,5,5])    print (intRDD.take(1))

Py4JJavaError: An error occurred while calling z:org.apache.spark.api.python.PythonRDD.collectAndServe. : org.apache.spark.SparkException:。。。。。。。。。。。。。。

此时需要添加环境变量,指明pyspark依赖的python程序驱动路径:

export PYSPARK_DRIVER_PYTHON=/usr/bin/python3
export PYSPARK_PYTHON=/usr/bin/python3

具体路径根据安装目录确定,source后重启spark与jupyter。一切正常。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值