使用 Apache Spark 執行處理任務 - Amazon SageMaker

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

使用 Apache Spark 執行處理任務

Apache Spark 是用於大規模資料處理的統一分析引擎。Amazon SageMaker 提供預先建置的 Docker 映像,其中包含 Apache Spark 和其他執行分散式資料處理任務所需的相依性。以下提供如何使用 Apache Spark 執行 Amazon SageMaker 處理任務的範例。

透過 Amazon SageMaker Python SDK,您可以使用 Spark 架構輕鬆套用資料轉換並擷取功能 (功能工程)。如需有關使用 SageMaker Python SDK執行 Spark 處理任務的資訊,請參閱 Amazon SageMaker Python SDK中的使用 Spark 進行資料處理

包含 Spark 映像的原始程式碼和 Dockerfiles 的程式碼儲存庫可在 上取得GitHub

您可以使用 sagemaker.spark.PySparkProcessorsagemaker.spark.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 處理範例筆記本

如果您未使用 Amazon SageMaker Python SDK 及其其中一個處理器類別來擷取預先建置的影像,則可以自行擷取這些影像。 SageMaker 預先建置的 Docker 映像會儲存在 Amazon Elastic Container Registry (Amazon ) 中ECR。如需預先建置之可用 Docker 映像的完整清單,請參閱可用映像文件。

若要進一步了解將 SageMaker Python SDK 與處理容器搭配使用,請參閱 Amazon SageMaker Python SDK