Python PySpark是否在独立模式下执行作业,但是否使用用户定义的模块?

Python PySpark是否在独立模式下执行作业,但是否使用用户定义的模块?,python,apache-spark,pyspark,virtualenv,cluster-computing,Python,Apache Spark,Pyspark,Virtualenv,Cluster Computing,我在一些机器上安装了spark,以便在独立群集模式下使用它。所以现在我有一些机器,每台都有相同的spark构建版本(spark 2.4.0基于hadoop 2.7+) 我想使用这个集群进行并行数据分析,我的运行语言是Python,所以我使用的是Pyspark而不是Spark。我已经创建了一些操作模块来处理数据,并给出我想要的形式 但是,我不想手动复制我在每台机器上创建的所有模块,因此我想知道PySpark中的哪个选项可以传递依赖项,以便确保每个执行者都有这些模块? 我想到了将被激活并安装模块的虚

我在一些机器上安装了spark,以便在独立群集模式下使用它。所以现在我有一些机器,每台都有相同的spark构建版本(spark 2.4.0基于hadoop 2.7+)

我想使用这个集群进行并行数据分析,我的运行语言是Python,所以我使用的是Pyspark而不是Spark。我已经创建了一些操作模块来处理数据,并给出我想要的形式

但是,我不想手动复制我在每台机器上创建的所有模块,因此我想知道PySpark中的哪个选项可以传递依赖项,以便确保每个执行者都有这些模块?

我想到了将被激活并安装模块的虚拟环境,但我不知道如何在Spark独立模式下进行,而在Thread manager中似乎是这个选项,但我不会安装Thread


注:某些模块使用.txt等数据文件和.dll等动态库。因此,我希望将它们传递给执行者。

分发Spark和您的模块的一个很好的解决方案是使用Docker Swarm(我希望您有Docker方面的经验)

试着看看这个存储库,它当时对我非常有用

它是分配火花的良好基础。除此之外,您还可以构建自己的模块。因此,您可以创建您的个人Docker映像以分发到Docker Hub中,然后使用Docker Swarm轻松地将其分发到集群中