

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Apache Spark を使用して Processing ジョブを実行する
<a name="use-spark-processing-container"></a>

Apache Spark は、大規模データ処理のための統合分析エンジンです。Amazon SageMaker AI には Apache Spark や、分散データ処理ジョブの実行に必要なその他の依存関係が含まれた構築済みの Docker イメージが用意されています。Apache Spark を使用して Amazon SageMaker Processing ジョブを実行する方法の例を次に示します。

[Amazon SageMaker Python SDK](https://github.com/aws/sagemaker-python-sdk#installing-the-sagemaker-python-sdk) を使うと、Spark フレームワークを使って簡単にデータ変換を適用し、特徴を抽出 (特徴量エンジニアリング) できます。SageMaker Python SDK を使って Spark の処理ジョブを実行する方法については、[Amazon SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable/) の「[Spark を使ってデータを処理する](https://sagemaker.readthedocs.io/en/stable/amazon_sagemaker_processing.html#data-processing-with-spark)」を参照してください。

Spark イメージのソースコードと Dockerfile を含むコードリポジトリは、[GitHub](https://github.com/aws/sagemaker-spark-container) にあります。

 [https://sagemaker.readthedocs.io/en/stable/api/training/processing.html#sagemaker.spark.processing.PySparkProcessor](https://sagemaker.readthedocs.io/en/stable/api/training/processing.html#sagemaker.spark.processing.PySparkProcessor) クラスまたは [https://sagemaker.readthedocs.io/en/stable/api/training/processing.html#sagemaker.spark.processing.SparkJarProcessor](https://sagemaker.readthedocs.io/en/stable/api/training/processing.html#sagemaker.spark.processing.SparkJarProcessor) クラスを使用して、処理ジョブ内で Spark アプリケーションを実行できます。MaxRuntimeInSeconds に設定できる最長のランタイム制限は 5 日間です。単純な Spark ワークロードでは、実行時間と使用インスタンス数に関して、インスタンス数と完了までの時間にほぼ直線的な関係が見られます。

 次のコード例は、PySpark スクリプト `preprocess.py` を呼び出す処理ジョブを実行する方法を示しています。

```
from sagemaker.spark.processing import PySparkProcessor

spark_processor = PySparkProcessor(
    base_job_name="spark-preprocessor",
    framework_version="2.4",
    role=role,
    instance_count=2,
    instance_type="ml.m5.xlarge",
    max_runtime_in_seconds=1200,
)

spark_processor.run(
    submit_app="preprocess.py",
    arguments=['s3_input_bucket', bucket,
               's3_input_key_prefix', input_prefix,
               's3_output_bucket', bucket,
               's3_output_key_prefix', output_prefix]
)
```

 詳細については、Apache Spark と SageMaker Processing を使った分散データ処理の[サンプルノートブック](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker_processing/spark_distributed_data_processing/sagemaker-spark-processing.html)を参照してください。

 [Amazon SageMaker AI Python SDK](https://sagemaker.readthedocs.io/) とその Processor クラスのいずれかを使って構築済みのイメージを取得していない場合は、自分で取得できます。SageMaker の構築済み Docker イメージは、Amazon Elastic Container Registry (Amazon ECR) に保存されます。利用可能な事前構築済み Docker イメージの完全なリストについては、[使用できるイメージ](https://github.com/aws/sagemaker-spark-container/blob/master/available_images.md)のドキュメントを参照してください。

 Processing コンテナで SageMaker Python SDK を使う方法の詳細については、[Amazon SageMaker AI Python SDK](https://sagemaker.readthedocs.io/en/stable/) を参照してください。