首页 > 解决方案 > 在 Dataproc 作业中设置动态属性

问题描述

这就是我想要完成的事情。我想创建一个工作流模板,以便启动集群、运行作业和删除集群。在工作中,我想传入可以动态设置的属性。例如,将属性设置为当前日期。

下面是一个简单的例子。我正确使用了数据函数,但这是在创建时处理的,所以如果我今天设置工作流,它看起来总是 2020 年 12 月 31 日。我知道我可以删除该作业并将其添加回每次运行的模板中,但我希望有一种更简单的方法。

gcloud dataproc workflow-templates create workflow-mk-test --region us-east1 --project data-engineering-doz4

gcloud dataproc workflow-templates set-managed-cluster workflow-mk-test \
--cluster-name=cluster-mk-test \
--project data-engineering-doz4 \
--image-version=1.3-ubuntu18 \
--bucket data-engineering-dev \
--region us-east1 \
--subnet ml-data-engineering-east1 \
--no-address \
--zone us-east1-b \
--master-machine-type n1-standard-4 \
--master-boot-disk-size 15 \
--num-workers 2 \
--worker-machine-type n1-standard-4 \
--worker-boot-disk-size 15

gcloud dataproc workflow-templates add-job pyspark gs://data-engineering-dev/jobs/millard-test.py \
--workflow-template=workflow-mk-test \
--step-id=test-job \
--region=us-east1 \
--project=data-engineering-doz4 \
-- date `date -v -1d '+%Y/%m/%d'` \
 --output-location s3n://missionlane-data-engineering-dev-us-east-1/delete-me/`date -v -1d '+%Y/%m/%d'`

标签: google-cloud-dataproc

解决方案


Dataproc 作业不支持通过运行 shell 命令生成的动态属性。在这种情况下,您可能需要考虑将逻辑作为工作的一部分,即在millard-test.py.


推荐阅读