Spark應用開發介紹
云原生數據倉庫 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中。 |