

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

# 使用适用于 Apache Spark 的 Amazon Redshift 集成启动 Spark 应用程序
<a name="emr-spark-redshift-launch"></a>

对于 Amazon EMR 版本 6.4 至 6.9，您必须使用 `--jars` 或 `--packages` 选项来指定要使用以下哪个 JAR 文件。`--jars` 选项指定存储在本地、HDFS 中或使用 HTTP/S 的依赖项。要查看 `--jars` 选项支持的其他文件位置，请参阅 Spark 文档中的[高级依赖管理](https://spark.apache.org/docs/latest/submitting-applications.html#advanced-dependency-management)。`--packages` 选项指定存储在公共 Maven 存储库中的依赖项。
+ `spark-redshift.jar`
+ `spark-avro.jar`
+ `RedshiftJDBC.jar`
+ `minimal-json.jar`

Amazon EMR 6.10.0 及更高版本不需要 `minimal-json.jar` 依赖关系，并且默认情况下会自动将其他依赖项安装到每个集群。以下示例显示了如何使用适用于 Apache Spark 的 Amazon Redshift 集成启动 Spark 应用程序。

------
#### [ Amazon EMR 6.10.0 \$1 ]

以下示例显示了如何在 Amazon EMR 版本 6.10 和更高版本上使用 `spark-redshift` 连接器启动 Spark 应用程序。

```
spark-submit my_script.py
```

------
#### [ Amazon EMR 6.4.0 - 6.9.x ]

要在 Amazon EMR 版本 6.4 至 6.9 上通过 `spark-redshift` 连接器启动 Spark 应用程序，必须使用 `--jars` 或 `--packages` 选项，如以下例所示。请注意，`--jars` 选项列出的路径是 JAR 文件的默认路径。

```
spark-submit \
  --jars /usr/share/aws/redshift/jdbc/RedshiftJDBC.jar,/usr/share/aws/redshift/spark-redshift/lib/spark-redshift.jar,/usr/share/aws/redshift/spark-redshift/lib/spark-avro.jar,/usr/share/aws/redshift/spark-redshift/lib/minimal-json.jar \
  my_script.py
```

------