使用Putty运行Spark代码报错:找不到对应Python文件如何处理?
报错原因
你收到的报错是因为spark-submit执行时,默认在当前登录用户的工作目录(这里是/home/maria_dev/)下查找指定的Python脚本,你将代码存放在本地电脑、没有传到HDP集群对应的路径下,因此系统找不到对应文件。
当前问题的解决步骤
- 首先将本地存放的
WorstMoviesSpark.py传输到HDP集群对应节点的目标路径:Windows环境可以用WinSCP工具直接拖拽上传,也可以在本地终端执行scp命令完成传输:
输入maria_dev用户的登录密码即可完成传输。scp 本地脚本存放路径/WorstMoviesSpark.py maria_dev@集群节点公网IP:/home/maria_dev/ - 传输完成后在Putty连接的集群节点执行命令验证文件存在:
ls /home/maria_dev | grep WorstMoviesSpark.py,有对应文件名输出就说明传输成功。 - 重新执行Spark提交命令即可:
spark-submit WorstMoviesSpark.py
同类「找不到文件」报错的通用排查方法
- 先确认执行
spark-submit时的当前工作目录:执行pwd命令查看当前路径,如果提交时写的是相对路径(比如直接写脚本名),需要保证脚本已经放在当前工作目录下。 - 如果脚本存放在其他路径,提交时可以写全绝对路径避免路径识别错误,比如脚本放在
/opt/spark/my_scripts/目录下,提交命令改为:spark-submit /opt/spark/my_scripts/WorstMoviesSpark.py - 如果需要多节点都能访问到脚本,也可以将脚本上传到HDFS存储,提交时指定HDFS路径即可:
spark-submit hdfs://namenode地址:端口/HDFS上的脚本存放路径/WorstMoviesSpark.py - 每次提交前可以先执行
ls 你填写的脚本路径,提前验证路径有效、没有拼写错误或者访问权限问题。
内容的提问来源于stack exchange,提问作者tryingDev
相关产品推荐
相关产品推荐

