

# 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]** (外部ライブラリまたはパッケージ) は、Athena ランタイムには含まれていない Java、Scala の JAR または Python ライブラリですが、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 は、新しい外部パッケージを含めたり、外部パッケージを削除したり、1 つ以上の外部パッケージのバージョンをアップグレードしたりする場合に、新しいコンビニエンスパッケージバージョンを作成します。

Athena は、そのパッケージが使用する Athena ランタイムを廃止すると便利であるパッケージを廃止します。Athena は、サポートするバンドルの数を制限するために、パッケージをすぐに非推奨にすることができます。

コンビニエンスパッケージの非推奨スケジュールは、Athena ランタイムの非推奨スケジュールに従います。