【发布时间】:2015-11-17 14:40:39
【问题描述】:
例如,如果我有一个从 PubSub 读取的具有 5 分钟窗口的 Dataflow 流作业,我了解如果我为一个元素分配一个过去两天的时间戳,那么将有一个包含该元素的窗口,并且如果我使用在 BigQueryIO.java 中描述的将每日表输出到 BigQuery 的示例中,该作业会将过去两天的元素写入 BigQuery 表中的实际日期。
我想用窗口元素的时间戳而不是当前窗口的时间将过去的元素写入 BigQuery 表,可以吗?
现在我正在遵循 DataflowJavaSDK/sdk/src/main/java/com/google/cloud/dataflow/sdk/io/BigQueryIO.java 中描述的示例:
PCollection<TableRow> quotes = ...
quotes.apply(Window.<TableRow>info(CalendarWindows.days(1)))
.apply(BigQueryIO.Write
.named("Write")
.withSchema(schema)
.to(new SerializableFunction<BoundedWindow, String>() {
public String apply(BoundedWindow window) {
String dayString = DateTimeFormat.forPattern("yyyy_MM_dd").parseDateTime(
((DaysWindow) window).getStartDate());
return "my-project:output.output_table_" + dayString;
}
}));
【问题讨论】:
-
向我们展示一些代码,因为不清楚您在问什么。
-
Pentium10 - 我已经用我现在使用的代码更新了问题。
标签: java google-bigquery google-cloud-dataflow