PySpark是Spark为使用Python程序编写Spark Application而实现的API,通过PySpark可以编写Spark Application并在Spark集群上运行。Python具有非常丰富的科学计算、机器学习处理库,如Numpy、Pandas、Scipy等。为了能够充分利用这些高效的Python模块,很多机器学习程序都会使用Python实现,同时也希望能够在Spark集群上运行。
在部分场景下不同的PySpark任务希望使用不同版本的Python,甚至依赖不同的Python库,此时在任务提交时会通过archives参数将独立Python打包成Zip包来实现该需求。然而在x86与ARM混合部署的Spark集群中,这样提交任务时就会出现在与打包的独立Python包属于不同平台上运行的Container运行失败的情况。