云原生数据仓库 AnalyticDB MySQL 版Spark离线应用和流应用的开发方法相同。本文介绍如何进行Spark作业开发。
开发工具
您可以通过如下五种方式进行Spark Batch和Streaming应用开发。
示例代码
本文以读取OSS数据为例,描述了Spark应用代码的编写方式,其中包括应用名称、conf配置参数等通用参数,还包括Java、Scala、Python应用的特定配置参数。命令行参数格式为JSON格式。示例如下:
{
"args": ["args0", "args1"],
"name": "spark-oss-test",
"file": "oss://<testBucketName>/jars/test/spark-examples-0.0.1-SNAPSHOT.jar",
"className": "com.aliyun.spark.oss.SparkReadOss",
"conf": {
"spark.driver.resourceSpec": "medium",
"spark.executor.resourceSpec": "medium",
"spark.executor.instances": 2,
"spark.adb.connectors": "oss"
}
}
通用参数
参数名称 | 是否必填 | 示例值 | 使用说明 |
name | 否 |
| Spark应用名称。 |
file | Python/Java/Scala应用必填 |
| Spark应用主文件的存储路径,文件路径需为绝对路径。主文件是入口类所在的JAR包或者Python的入口执行文件。 重要 Spark应用主文件目前只支持存储在OSS中。 OSS Bucket与AnalyticDB for MySQL集群需要在同一地域。 |
files | 否 |
| Spark应用依赖的文件资源,文件会被下载到Driver和Executor进程的当前执行目录下。 支持配置文件别名,例如 多个文件中间用英文逗号(,)分隔。 说明
|
archives | 否 |
| Spark应用依赖的压缩包资源,目前支持.TAR.GZ后缀。压缩包会被解压到当前Spark进程的当前目录下。 支持配置文件别名,例如 多个压缩包中间使用英文逗号(,)分隔。 说明 Spark应用所依赖的所有压缩包须存储在OSS中。压缩包解压缩失败,任务会失败。 |
conf | 是 |
| 与开源Spark中的配置项基本一致,参数格式为 |
Java应用参数
参数名称 | 是否必填 | 示例值 | 使用说明 |
args | 否 |
| 请根据业务需求,填写使用JAR包时需要使用的参数。多个参数之间以英文逗号(,)分隔。 |
className | 是 |
| Java程序入口类名称。 |
jars | 否 |
| Spark应用依赖的JAR包,多个JAR包之间以英文逗号(,)分隔。需填写JAR包文件的绝对路径。JAR包在运行时会被加入到Driver和Executor JVM的ClassPath里面。 重要
|
Scala应用参数
参数名称 | 是否必填 | 示例值 | 使用说明 |
className | 是 |
| Scala程序入口类名称。 |
jars | 否 |
| Spark应用依赖的JAR包,多个JAR包之间以英文逗号(,)分隔。需填写JAR包文件的绝对路径。JAR包在运行时会被加入到Driver和Executor JVM的ClassPath里面。 重要
|
Python应用参数
参数名称 | 是否必填 | 示例值 | 使用说明 |
pyFiles | 是 |
| PySpark依赖的Python文件,后缀可以是ZIP、PY和EGG。如果依赖多个Python文件,建议使用ZIP或者EGG压缩包。您可以在Python代码中以module方式引用Python文件。多个压缩包中间使用英文逗号(,)分隔。 说明 Spark应用所依赖的所有Python文件须存储在OSS中。 |