---
title: PySpark简介
description: "本文档指导读者在Anaconda环境下搭建PySpark的运行环境，并完成PySpark任务的提交。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengbds/ecosystemEnable/Spark/kunpengspark_20_0002.html
sourcePath: /source/zh/kunpengbds/ecosystemEnable/Spark/kunpengspark_20_0002.html
indexId: 045a93e7cce2bfba07dae250e5bf872e23fc7611f151ca70fac5dd1378391ba369
---
# PySpark简介

本文档指导读者在Anaconda环境下搭建PySpark的运行环境，并完成PySpark任务的提交。

在x86与Arm混合架构的Spark集群中，使用自定义Python环境运行PySpark任务时需确保环境与节点架构一致，以避免因架构不匹配导致的运行失败。

PySpark是Spark为使用Python程序编写Spark Application而实现的API，通过PySpark可以编写Spark Application并在Spark集群上运行。Python拥有非常丰富的科学计算、机器学习处理库，如NumPy、Pandas、SciPy等。为了能够充分利用这些高效的Python模块，很多机器学习程序都会使用Python实现，同时也希望能够在Spark集群上运行。

在部分场景中，不同的PySpark任务可能需要使用不同版本的Python，甚至依赖特定的Python依赖库。为了解决这一问题，通常在提交任务时，会通过“archives”参数将自定义的Python环境打包为ZIP文件，随任务一起提交到集群中运行。这种方式可以确保每个任务使用其所需的Python环境和依赖库，避免版本冲突。

然而在x86与Arm混合部署的Spark集群中，这种做法可能导致运行失败。原因在于，用户打包的独立Python环境通常是为特定CPU架构（如x86）编译的，而运行该任务的Container可能位于另一种架构（如Arm）的节点上。由于不同架构之间无法直接运行对方的二进制文件，因此会导致程序无法启动或运行异常。为了解决这一问题，需要在任务提交和资源管理层面进行优化，确保Python环境与运行节点的CPU架构一致，以适配混合架构的部署需求。
