我的问题围绕着启动API调用来获取TextIO
输出的文件前缀。
这是我现在拥有的(可以工作的):
results.get(validRecords).setCoder(StringUtf8Coder.of()).apply(Window.<String>into(Sessions.withGapDuration(Duration.standardMinutes(1)))).apply("WriteValidRecords",TextIO.write().to(cloudStorageValidfile).withSuffix(".csv").withWindowedWrites().withNumShards(1));
这也是我所做的更改:
results.get(validRecords).setCoder(StringUtf8Coder.of()).apply(Window.<String>into(Sessions.withGapDuration(Duration.standardSeconds(60)))).apply("WriteRecords", TextIO.write().to(API-CALL).withWindowedWrites().withSuffix("csv").withNumShards(1));
似乎通过API调用,它仅在实例化时被调用一次,然后连续使用相同的前缀。有没有一种方法可以强制每次通话?
答案 0 :(得分:0)
我想出了这一点,如果您想进行API调用,那么在实例化时就可以了。此后,您将无法进行部署,因为它将以其编译和启动的状态进行部署。因此,如果API调用在那里很好,但是它将仅获得一次值,并将调用交换为已检索的值,然后启动。在其他区域,您可以在每次调用时进行API调用(可序列化功能应该可以使用),但在这里不能。