FileNotFoundError.当在Heroku上运行pyspark命令时,没有遇到spark-submit的文件或目录。在Heroku上运行pyspark命令时,没有遇到spark-submit的文件或目录。

问题描述 投票:1回答:1

背景:我建立了一个XGBClassifier模型用于基于内容的过滤,以及ALS模型用于协作过滤(对于ALS,我从pyspark中导入)。我建立了一个基于内容过滤的XGBClassifier模型和一个用于协同过滤的ALS模型(对于ALS,我从pyspark导入。 ml),并取两者的评分预测的加权和,得出最终的评分预测,并按降序排序(并为用户显示前5行作为前5名推荐),用于混合推荐系统,该系统是基于搜刮到的包含新加坡咖啡饮品店的Yelp数据建立的,基本上,我建立了一个混合推荐器,基于Yelp数据向新加坡的深L爱好者推荐咖啡饮品店。

我已经在本地的jupyter笔记本以及虚拟环境中成功构建并运行了它,并将其作为Flask应用(jupyter笔记本中的代码被复制并粘贴到flaskr.py中,与其附带的静态样式表和html模板一起构成flask应用)。

在准备与Heroku部署时,我还准备了一个基于pip freeze命令的requirements.txt,一个包含gunicorn和各种参数的Procfile,比如-timeout 1800(因为我的flask应用需要20分钟才能搅出建议,所以我想到了把worker的超时时间延长到20分钟(1800s)),甚至还把我的.bash_profile复制粘贴到flask应用中。 bash_profile到flaskr文件夹中(在这个flaskr文件夹中,还有另一个flaskr文件夹,里面有flaskr.py、requirements.txt、Procfile以及使用的相关数据集)。

在我的flaskr.py中,我没有使用SparkContext,也没有使用spark-submit,而只使用了SparkSession,flask应用在本地虚拟环境和本地jupyter笔记本中都能正常工作,但是当我试图在Heroku上使用procfile中的gunicorn进行部署时,却出现了找不到spark-submit的FileNotFoundError[ErrNo2]......。

我试着在虚拟环境下,在终端上运行 heroku run .binpyspark(或 spark-shell) -a,pyspark 命令产生了以下输出。

enter image description here

而对于spark-shell命令,只有spark-submit没有找到,但问题是,当我检查时,这两个文件都在各自的路径中非常存在!

以下是我在部署的应用中点击 "提交 "时遇到的错误日志:coffee-recsys.herokuapp.com ,主要问题(我认为)是位于红框内的东西......。enter image description here

真的很感激,如果有人能启发我,我怎么可能解决这个问题,因为我一直在研究在线和permutating我的谷歌搜索词在过去的几天,没有用。或者我应该尝试其他搜索引擎,如bing或yahoo,而不是?

任何帮助呈现的感谢,即使它不导致成功部署我的应用程序在heroku(例如,由于可能的不兼容问题之间的火花-2.4.5和heroku)......

heroku pyspark gunicorn spark-submit
1个回答
0
投票

可能你移动了你的Spark位置,检查一下$SPARK_HOME环境变量是否可以到达预定的安装点。

© www.soinside.com 2019 - 2024. All rights reserved.