索引DataFlow中的PCollection

时间:2016-10-31 23:26:46

标签: google-cloud-dataflow

我在Cloud Dataflow中构建了一个PCollection,我将按原样写入磁盘。我想构建另一个集合,通过索引引用第一个集合中的项目。 e.g。

PC1:

strings go here
some other string here
more strings

PC2:

0,1
1,1
0,2

我不确定如何在没有编写整个管道并启动另一个管道的情况下获取PC1中的索引,即便如此,我也不确定如何记录正在读取的行/记录号。简单地使用静态变量是否安全?我认为不是基于平台的一般并行性质。

1 个答案:

答案 0 :(得分:1)

PCollection本来就是无序的,所以没有&#34;集合中项目的索引&#34; - 但是,您可以在元素本身中包含行号:让PC1PCollection<KV<Integer, String>>,其中整数是行号 - 基本上读取文本文件中与行号配对的行。

我们目前没有提供执行此操作的内置源代码 - 您最好的选择是编写一个简单的DoFn<String, KV<Integer, String>>,将文件名作为输入并使用IOChannelFactory打开文件并逐行读取并使用行号发出内容以生成PC1