使用 Apache Spark 进行数据处理 - Amazon SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 Apache Spark 进行数据处理

Apache Spark 是用于大规模数据处理的统一分析引擎。Amazon SageMaker 提供了预构建的 Docker 映像,包括 Apache Spark 以及运行分布式数据处理作业所需的其他依赖项。使用Amazon SageMaker Python 开发工具包,您可以使用 Spark 框架轻松应用数据转换和提取要素(要素工程)。有关使用 SageMaker Python 开发工具包运行 Spark 处理作业的信息,请参阅使用 Spark 进行数据处理中的Amazon SageMaker Python 开发工具包.

包含 Spark 映像的源代码和 Docker 文件的代码存储库可在GitHub.

运行火花处理 Job

您可以使用sagemaker.spark.PySparkProcessor或者sagemaker.spark.SparkJarProcessor类在处理作业中运行 Spark 应用程序。请注意,您可以将 MaxRuntimeInSeconds 设置为 5 天的最大运行时间限制。关于执行时间和使用的实例数量,简单的火花工作负载看到实例数与完成时间之间的近线性关系。

以下代码示例演示如何运行处理作业,该作业调用 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 开发工具包及其处理器类之一来检索预构建映像,您可以自行检索这些映像。SageMaker 预构建的 Docker 映像存储在 Amazon Elastic Container Registry (Amazon ECR) 中。有关可用的预构建 Docker 映像的完整列表,请参阅可用图片文档.

要了解有关将 SageMaker Python 开发工具包与处理容器结合使用的更多信息,请参阅Amazon SageMaker Python 开发工具包.