目前我正在火花群上运行火花流的python脚本。脚本A从自定义脚本B导入函数,脚本B具有依赖文件。例如,该函数搜索字典中是否存在单词,因此程序需要首先读取字典。此外,scriptB使用多个包,如Tensorflow,Keras等......
因此,压缩所有依赖关系并通过网络发送它们似乎效率低下。
我想知道是否有办法为1.python解释器设置路径,2.library 3.从属文件为工作者(从属节点)?
答案 0 :(得分:0)
如果您的依赖项不会发生变化,并且您能够轻松地在群集上安装内容,那么您只需将所需文件安装到每个工作线程上即可。执行此操作的最简单方法是跟踪您的依赖关系,即从每个worker上的requirements.txt文件创建一个venv。然后你就可以在你的venv中将Spark指向python解释,并且所有的依赖都可用。
要指向特定翻译的火花:
A)在你的spark-submit调用中设置 - conf' spark.pyspark.python = / some / path / to / python' ,或
B)在 $ SPARK_HOME / conf / spark-env.sh 中添加此行
export PYSPARK_PYTHON=/some/path/to/python