pyspark:rdd.foreach(print)报错NameError

您所在的位置:网站首页 python如何报错 pyspark:rdd.foreach(print)报错NameError

pyspark:rdd.foreach(print)报错NameError

2024-07-10 12:54:30| 来源: 网络整理| 查看: 265

目录

报错原因

如何查看是不是这个错误

简便解决方法

彻底解决方法

报错原因

应该是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 python

python2.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.执行语句测试应该就不会报错了

如有侵权,联系删除



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭