python - Apache Beam - 在 PTransform 之外获取值提供者参数
问题描述
我已经定义了一个自定义数据流模板。它接收的参数之一是包含布尔值的值提供程序参数(实际上,它是匹配“True”或“False”的字符串)。我想用这个参数来决定是否运行一组 PTransforms。代码如下所示:
class CustomOptions(PipelineOptions):
@classmethod
def _add_argparse_args(cls, parser):
parser.add_value_provider_argument(
'--save_dropped',
help='Boolean to control the saving of dropped emails.')
options = PipelineOptions()
args = options.view_as(CustomOptions)
with beam.Pipeline(options=options) as p:
if args.save_dropped == 'True':
# Perform some optional PTransforms
我不希望这个参数是一个固定的模板,这就是为什么我将它定义为一个值提供者参数。当我使用'save_dropped = 'True'
管道开始工作时,不会执行可选的 PTransforms,因此代码似乎没有得到我赋予它的值。有没有办法在 PTransform 规范之外获得该值?如果不是这种情况,您能否向我推荐一种实现我想要的行为的替代方法?
解决方案
推荐阅读
- solr - SolrJ 是在 Java 环境中使用 Solr 的推荐方法吗?
- delphi - 致命错误 EDebug.pas(3094):无法创建输出文件 P:\Trails\Gui\SD\obj\EDebug.dcu
- c# - Dapper QueryAsync 消息返回任务取消
- php - WooCommerce - 在结帐页面和电子邮件的本地取货时隐藏帐单地址
- javascript - TypeError:无法读取未定义的属性“setState”,以响应 axios 在反应 JS 中获取数据
- audiokit - 将 AKPlayer 与 AKSampleMetronome 同步
- php - 使用复选框插入数据 - PDO
- redirect - nginx 将所有图像重定向到新域
- c# - 使用 LINQ 搜索数据表
- ios - 如何在每次迭代后快速使用for循环中断和继续