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

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

使用 Apache Spark 进行数据处理

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

GitHub 上提供了包含 Spark 映像的源代码和 Dockerfile 的代码存储库。

运行 Spark 处理作业

您可以使用 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 开发工具包及其 Processor 类之一来检索预构建映像,则可以自行检索这些映像。SageMaker 预构建的 Docker 映像存储在 Amazon Elastic Container Registry (Amazon ECR) 中。有关可用预构建 Docker 映像的完整列表,请参阅可用映像文档。

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