AnalyticDB for MySQLSpark離線應用和流應用的開發方法相同。本文介紹如何進行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中。 |