2016-10-28 88 views
0

如何從PCollection<KV<String, String>>輸出到多個文件?從PCollection <KV <String,String >>輸出多個文本文件

每個條目中的關鍵是文件名。 groupByKey轉換給我PCollection<KV<String, Iterable<String>>>,但我如何將它們寫入多個文件?

例如,假設下面輸入

<file1, value1> 
<file2, value2> 
<file1, value3> 

我想輸出兩個文件

file1: 
    value1 
    value3 

file2: 
    value2 
+0

現在可以通過TextIO.write()。到(DynamicDestinations)。請參閱https://github.com/apache/beam/blob/master/sdks/java/core/src/main/java/org/apache/beam/sdk/io/TextIO.java#L571 – jkff

回答

2

數據流目前沒有一個轉換,它可以爲你做這個。作爲解決方法,您可以使用簡單的DoFn執行此操作,該操作將從KV中提取文件名,使用IOChannelFactory打開文件,然後將Iterable<String>寫入該文件。

參見similar questionanother one

我們有計劃解決這個https://issues.apache.org/jira/browse/BEAM-92,但沒有具體的時間表。

相關問題