

# 在 Athena for Spark 中使用 Python 库
<a name="notebooks-spark-python-library-support"></a>

**注意**  
本页指的是在 Pyspark 引擎 3 发行版中使用 Python 库。Apache Spark 3.5 发行版基于 [Amazon EMR 7.12](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-7120-release.html)。有关此版本中包含的库，请参阅 EMR 7.12。

本页面介绍 Amazon Athena for Apache Spark 中使用的运行时、库和程序包所使用的术语及所遵循的生命周期管理。

## 定义
<a name="notebooks-spark-python-library-support-definitions"></a>
+ **Amazon Athena for Apache Spark** 是开源 Apache Spark 的自定义版本。要查看当前版本，在笔记本单元格中运行命令 `print(f'{spark.version}')`。
+ **Athena runtime**（Athena 运行时）是代码运行的环境。该环境包括 Python 解释器和 PySpark 库。
+ **external library or package**（外部库或程序包）是 Java、Scala JAR 或 Python 库，不属于 Athena 运行时的一部分，但可以包含在 Athena for Spark 任务中。外部程序包可以由 Amazon 或您构建。
+ **convenience package**（便捷程序包）是 Athena 选择的外部包集合，您可以选择将其包含在 Spark 应用程序中。
+ **bundle**（捆绑包）结合了 Athena 运行时和便捷程序包。
+ **user library**（用户库）是显式添加到 Athena for Spark 任务中的外部库或程序包。
  + 用户库是外部程序包，不属于便捷程序包的一部分。用户库需要加载和安装，与写入某些 `.py` 文件、将其压缩，然后将 `.zip` 文件添加到应用程序一样。
+ **Athena for Spark application**（Athena for Spark 应用程序）是您提交到 Athena for Spark 的任务或查询。

## 生命周期管理
<a name="notebooks-spark-python-library-support-lifecycle-management"></a>

以下各节介绍了 Athena for Spark 中使用的运行时包和便利包的版本控制和弃用策略。

### 运行时版本控制和弃用
<a name="notebooks-spark-python-library-support-runtime-versioning-and-deprecation"></a>

Python 解释器是 Athena 运行时的主要组件。由于 Python 是一种不断发展的语言，因此会定期发布新版本，并取消对旧版本的支持。Athena 不建议您使用已弃用的 Python 解释器版本来运行程序，并强烈建议您尽可能使用最新的 Athena 运行时。

Athena 运行时弃用计划如下所示：

1. Athena 提供新的运行时后，将继续支持之前的运行时 6 个月。在此期间，Athena 将对之前的运行时应用安全补丁和更新。

1. 6 个月后，Athena 将终止对之前运行时的支持。Athena 将不再对之前的运行时应用安全补丁和其他更新。使用之前运行时的 Spark 应用程序将不再有资格获得技术支持。

1. 12 个月后，您将无法再在使用之前运行时的工作组中更新或编辑 Spark 应用程序。建议您在这段时间结束之前更新 Spark 应用程序。这段时间结束后，您仍然可以运行现有笔记本，但任何仍在使用之前运行时的笔记本都会记录相应的警告。

1. 18 个月后，您将无法再使用之前的运行时在工作组中运行任务。

### 便捷程序包版本控制和弃用
<a name="notebooks-spark-python-library-support-convenience-package-versioning-and-deprecation"></a>

便捷程序包的内容会随时间而变化。Athena 偶尔会添加、删除或升级这些便捷程序包。

Athena 使用以下便捷程序包准则：
+ 便捷程序包具有简单的版本控制方案，例如 1、2、3。
+ 每个便捷程序包版本均包含外部程序包的特定版本。Athena 创建便捷程序包后，便捷程序包的外部程序包集合及其相应版本不会更改。
+ 每当 Athena 包含新的外部程序包、删除外部程序包或升级一个或多个外部程序包的版本时，Athena 都会创建新的便捷程序包版本。

如果 Athena 弃用程序包所使用的 Athena 运行时，同时也会弃用该便捷程序包。Athena 可以更快地弃用程序包，以限制其支持的捆绑包数量。

便捷程序包弃用计划遵循 Athena 运行时弃用计划。