google-cloud-dataproc - 在 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'`
解决方案
Dataproc 作业不支持通过运行 shell 命令生成的动态属性。在这种情况下,您可能需要考虑将逻辑作为工作的一部分,即在millard-test.py
.
推荐阅读
- vb.net - 使用checkedlistbox并得到这个结果“system.data.datarowview”
- arrays - 在 C 中获取数组输入后程序不继续
- outlook - OfficeJS:收听电子邮件选择
- vue.js - 单击自定义按钮关闭 PrimeVue (Vue js) 日历
- android - 适用于 Android 的 Azure 应用程序洞察
- amazon-web-services - 缺少 Lambda 的 .so 文件 - 无服务器框架 (AWS)
- capl - CAPL 评估写入矩阵
- html - 左侧浮动不适用于特定图标
- javascript - 为什么订阅多次后工作?
- r - 计算列的特定值,考虑它们是否在不在“group_by”下的组中