0
是否有可能在不同的文件上寫入明智的結果?意思是,我需要追加時間文件前綴或時間智慧的目錄,以便我可以訪問特定的窗口結果,而無需額外的過濾器。 (如apache-spark
)在不同的文件上寫入明智的結果
是否有可能在不同的文件上寫入明智的結果?意思是,我需要追加時間文件前綴或時間智慧的目錄,以便我可以訪問特定的窗口結果,而無需額外的過濾器。 (如apache-spark
)在不同的文件上寫入明智的結果
答案取決於您是以批處理模式還是流模式使用窗口。
在流模式下,雲數據流服務不支持寫入文件at this time。在這種情況下,您應該使用BigQuery接收器,而我們確實支持每個窗口分片。
代碼示例(見Javadoc有詳細介紹):
PCollection<TableRow> quotes = ...;
quotes.apply(Window.<TableRow>into(CalendarWindows.days(1)))
.apply(BigQueryIO.Write
.named("Write")
.withSchema(schema)
.to(new SerializableFunction<BoundedWindow, String>() {
public String apply(BoundedWindow window) {
// The cast below is safe because CalendarWindows.days(1) produces IntervalWindows.
String dayString = DateTimeFormat.forPattern("yyyy_MM_dd")
.withZone(DateTimeZone.UTC)
.print(((IntervalWindow) window).start());
return "my-project:output.output_table_" + dayString;
}
}));
在批處理模式下,TextIO.Write
沒有一個方便的方法準備好這樣的目的,但你可以實現類似自己沒有太多的麻煩事。例如,一種方法來實現此目的是通過Partition
變換,其輸出是管道分開TextIO.Write
匯。