

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 在 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>

Athena 執行事件中的主要元件是 Python 解譯器。由於 Python 是一種不斷發展的語言，因此會定期發佈新版本，並移除對舊版本的支援。Athena 不建議您使用已棄用的 Python 解譯器版本來執行程式，強烈建議您盡可能使用最新的 Athena 執行事件。

Athena 執行時間棄用排程如下：

1. Athena 提供新的執行時間後，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 執行時間棄用排程。