

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

# 调整对 AWS Glue 和 Amazon EMR 任务Spark的Spark SQL查询
<a name="introduction"></a>

*Phani Alapaty 和 Ravikiran Rao，Amazon Web Services ()AWS*

*2024 年 1 月*（[文件历史记录](doc-history.md)）

[https://spark.apache.org/sql/](https://spark.apache.org/sql/)是一个用于处理结构化数据的Apache Spark模块。[Amazon EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-what-is-emr.html) 和[AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/what-is-glue.html)任务Spark SQL用于处理、转换和加载数据。与基本的Spark弹性分布式数据集 (RDD) API 不同，这些Spark SQL接口为数据结构和正在执行的计算提供了更多信息。Spark在内部，Spark SQL使用这些额外信息来执行其他查询优化。有多种交互方式Spark SQL，包括 SQL 和数据集 API。

在提取、转换数据或将数据加载到对象存储或数据库时，连接数据是您可以执行的最常见和最重要的操作之一。加入时，您需要考虑绩效。当某些联接、分析或聚合操作耗尽内存时，会出现多种情况，例如大型网络传输。这可能会导致 AWS Glue Spark作业失败。

本指南提供了最佳实践，可帮助您调整 AWS Glue 或 Amazon EMR 任务的Spark SQL加入查询。 Spark提供了许多可提高Spark SQL工作负载性能的配置选项。这些调整可以通过编程方式完成，也可以使用`spark-submit`命令将其应用于全局级别。本指南介绍了其中的一些配置，以便您可以改进或微调Spark SQL查询和应用程序的性能。本指南中的建议基于 AWS 专业服务用于提高Spark SQL查询和应用程序性能的配置。

## 目标受众
<a name="intended-audience"></a>

本指南可帮助架构师、数据工程师、数据科学家和开发人员了解可提高Spark SQL查询性能的Spark SQL配置选项。