pyspark:rdd.foreach(print)报错NameError |
您所在的位置:网站首页 › python如何报错 › pyspark:rdd.foreach(print)报错NameError |
目录
报错原因 如何查看是不是这个错误 简便解决方法 彻底解决方法 报错原因应该是pyspark低里自带一个Python2版本,可以通升级pyspark自带的python版本来解决 除了rdd.foreach(print)报错NameError还有一个表现就是: 当使用rdd.collect()时,会出现不正常的u字母 [(u'DataStructure', 5), (u'Music', 1), (u'Algorithm', 5), (u'DataBase', 5)] 如何查看是不是这个错误在启动的时候可以看到你的python版本 上图的python版本就是python 2.7.5 简便解决方法每次启动pyspark时,先输入一条语句(from __future__ import print_function)即可 from __future__ import print_function 彻底解决方法1.安装python3 参考链接:centos安装python3详细教程_知行合一-CSDN博客_centos安装python3 如果要用的3.0以上的版本需要手动安装,下载地址:https://www.python.org/ftp/python/ (1)先查看系统python的位置在哪儿 whereis pythonpython2.7默认安装是在 /usr/bin目录中,切换到/usr/bin/ cd /usr/bin/查看有关python的文件的详细信息 ll python*从下面的图中可以看出,python指向的是python2,python2指向的是python2.7,因此我们可以装个python3,然后将python指向python3,然后python2指向python2.7,那么两个版本的python就能共存了 (2)下载python3的包之前,要先安装相关的依赖包,用于下载编译python3 yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make运行了以上命令以后,就安装了编译python3所用到的相关依赖 (3)默认的centos7是没有安装pip,先添加epel扩展源 yum -y install epel-release(4)安装pip yum install python-pip(5)安装wget yum -y install wget(6)用wget下载python3的源码包,或者自己先下载好,上传到服务器再安装,如果网络快可以直接安装 wget https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tar.xz(7)编译python3源码包,解压 xz -d Python-3.6.8.tar.xz tar -xf Python-3.6.8.tar(8)进入解压后的目录,依次执行下面命令进行手动编译 cd Python-3.6.8 ./configure prefix=/usr/local/python3 make && make install(9)安装依赖zlib、zlib-deve yum install zlib zlib yum install zlib zlib-devel(10)最后没提示出错,就代表正确安装了,在/usr/local/目录下就会有python3目录 (11)添加软链接,将原来的链接备份 mv /usr/bin/python /usr/bin/python.bak(12)添加python3的软链接 ln -s /usr/local/bin/python3.6 /usr/bin/python(13)测试是否安装成功 python -V(14)更改yum配置,因为其要用到python2才能执行,否则会导致yum不能正常使用 vi /usr/bin/yum(15)把第一行的#! /usr/bin/python 修改为如下 #! /usr/bin/python2(16)还有一个地方也需要修改 vi /usr/libexec/urlgrabber-ext-down(17)把第一行的#! /usr/bin/python 修改如下 #! /usr/bin/python2(18)启动python2 python2(19)启动python3 python改好之后的链接 2.pyspark设置python版本 参考链接:pyspark设置python的版本_abc_321a的博客-CSDN博客_spark指定python版本 (1)修改spark-env.sh文件,在末尾添加export PYSPARK_PYTHON=/usr/local/bin/python3.6 cd /home/hadoop/softs/spark-2.4.7/conf //spark-env.sh文件在该目录下(2)修改spark安装包bin目录下的pyspark cd /home/hadoop/softs/spark-2.4.7/bin vi pyspark修改如图两个位置,将原来的python改成python3,如下图 (3)启动pyspark可以看到python版本变了 3.执行语句测试应该就不会报错了 如有侵权,联系删除 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |