我尝试以两种不同的方式向我的工作流程模板添加spark-r
作业步骤。
使用gcloud命令:
gcloud beta dataproc workflow-templates add-job spark-r gs://path/to/script.R \
--step-id=<stepid> --workflow-template=<templateid>
或通过导入YAML定义:
jobs:
- sparkRJob:
mainRFileUri: gs://path/to/script.R
stepId: <stepid>
placement:
managedCluster:
clusterName: cluster-sparkr
config:
gceClusterConfig:
zoneUri: europe-west4-b
masterConfig:
machineTypeUri: n1-standard-4
workerConfig:
machineTypeUri: n1-standard-4
numInstances: 4
但是,两种方法都会导致以下错误:
INVALID_ARGUMENT:作业“”必须提供作业定义
这让我对我到底缺少什么感到困惑。
答案 0 :(得分:1)
我已经测试了您的YAML定义,并且可以通过以下命令为我工作:
gcloud beta dataproc workflow-templates instantiate-from-file --file <definition.yaml>
此外,使用gcloud命令成功创建了带有Spark R作业的工作流模板:
gcloud beta dataproc workflow-templates create my-test-wf-01
gcloud beta dataproc workflow-templates add-job spark-r gs://path/to/script.R \
--step-id=my-test-step-id --workflow-template=my-test-wf-01
上面第二条命令的输出:
createTime: '2019-04-15T16:49:06.346Z'
id: my-test-wf-01
jobs:
- sparkRJob:
mainRFileUri: gs://path/to/script.R
stepId: my-test-step-id