我需要使用spark执行几个python作业。 python代码不使用任何特定于spark的分布式库。它只是使用pandas,scipy和sklearn来操作数据。
我使用命令将作业提交给spark:
spark-submit --master spark://ip:7077 python_code.py
当我提交几个这样的作业时,所有作业只在master上执行。主站上的CPU达到100%,但是workeer节点都处于空闲状态。我认为spark的资源管理器会在整个集群中分配负载。
我知道我的代码不使用spark提供的任何分布式库,但有没有办法将完整的作业分发到不同的节点?
答案 0 :(得分:0)
如果没有spark动作API(collect / take / first / saveAsTextFile),将不会在执行程序上执行任何操作。仅通过提交spark就不可能分发普通的python代码。
您可以检查其他并行处理库,例如dask(https://github.com/dask/dask)。