我试图创建一个数据流作业每天运行与云调度器。我需要使用get请求从外部API获取数据,所以我需要当前日期作为输入。但是,当我将数据流作业导出为计划模板时,日期输入将停留在执行时,而不是每天更新。我一直在寻找一个解决方案,遇到了ValueProvider,但是我的管道用apache_beam.transforms.create
语句总是在没有指定ValueProvider时返回错误'runtimeValueProvider(选项:test,type:str,default_value:'killme').get()not cally from a runtime context‘。
我能克服这个吗?这似乎是一个如此简单的问题,但我无论如何都不能使它工作。如果有任何想法,我非常感谢!!
您可以使用ValueProvider接口将运行时参数传递给您的管道,要在DoFn中访问它,您需要将其作为参数传入。类似于下面的示例:
https://beam.apache.org/documentation/patterns/pipeline-options/#追溯-logging-runtime-parameters
class LogValueProvidersFn(beam.DoFn):
def __init__(self, string_vp):
self.string_vp = string_vp
# Define the DoFn that logs the ValueProvider value.
# The DoFn is called when creating the pipeline branch.
# This example logs the ValueProvider value, but
# you could store it by pushing it to an external database.
def process(self, an_int):
logging.info('The string_value is %s' % self.string_vp.get())
# Another option (where you don't need to pass the value at all) is:
logging.info(
'The string value is %s' %
RuntimeValueProvider.get_value('string_value', str, ''))
| beam.Create([None])
| 'LogValueProvs' >> beam.ParDo(
LogValueProvidersFn(my_options.string_value)))
您可能还想看看Flex模板:
我试图用web表单做一个web调查应用程序。问题是我在调查创建部分有麻烦。
问题内容: 我需要最快的方式来获得一周的第一天。例如:今天是11月11日,是星期四;我想要本周的第一天(即11月8日)和一个星期一。我需要用于MongoDB地图功能的最快方法,有什么想法吗? 问题答案: 使用Date对象的方法,您可以知道星期几(0 =星期日,1 =星期一,等等)。 然后,您可以减去该天数加一,例如:
问题内容: 我想100天前从13年4月8日开始作为日期。 如何使用pl / sql执行此操作? 问题答案: 假设情况是您所处的字符串。因此,您需要将其转换为using函数,然后简单地减去100个文字。 的SQL 2 from dual 3 / RES 29-12-2012 PL / SQL 2 l_res_date date; 3 l_in_date varchar2(11) := ‘08-APR
我有以下场景,需要一些建议: 用户将输入一个word文档作为模板,并在运行时提供一些参数,这样我就可以查询我的数据库并获得填充文档的数据。所以,我需要做两件基本的事情: null
我有一个Maria数据库,其中有一个表,列名为(时间戳)。我想做的规范,以找到记录之前/之后的日期。我有这个: 这是在我的数据库中找到的日期:。如果我尝试查找记录,我会得到。我是这样称呼它的: null
问题内容: 假设我有一个这样的搜索查询: 如您所知,例如,我得到这样的结果: 但是我 没有 得到一周中没有创建任何条目的日子。 如何获得看起来像这样的搜索结果, 包括 没有创建条目的日子? 问题答案: SELECT day, COALESCE(ct, 0) AS ct FROM (SELECT now()::date - d AS day FROM generate_series (0, 6) d