我是Google Dataflow的新手,正在使用catalogdata,我想加入不同语言的目录。现在,我的进程会为自己解析这两种语言,并为每种语言创建一个PCollection。此PCollection包含一个元素,其中包含元数据,所有文章和所有类别。模型准备好容纳多种语言,我现在需要做的就是合并这两个元素(PCollections)。
但.... Google数据流文档并未提供有关如何合并这些集合的示例#34;手动"并且应用中的输入始终需要特定的输入类型。 我尝试了PCollectionList但找不到可以处理所有包含PCollection及其实体的解决方案。然后我写了一个Custom CombineFn,但我不知道如何应用它,以便两个集合结合起来。
所以我有2个PCollection catalogCollection_de和catalogCollection_fr。如何处理这些以自定义加入它们并获得单个PCollection?
非常感谢任何帮助
编辑:问题"合并/加入"意味着在这种情况下。
PCollections对象包含一个名为CatalogCollection的Pojo,其中包含元数据,类别和文章。每个Pojos都有不同的文本,每个文本由Map<LanguageKey, Description>
表示。对于每种语言,都有一个包含此CatalogCollection的PCollection。当我想加入/合并它们时,我想在一个PCollection中收集所有语言,这意味着,例如,对于每个文章,我需要在另一种语言中找到相应的文章,并将所有描述放在第一个收集,最后,应收集所有语言。
答案 0 :(得分:0)
对于我的Usecase,似乎可行的方法是使用带侧输入的ParDo并手动加入PoJos(由于我的数据结构)。还有一个更新的管道,其中PCollections被分解为文章/类别等。我必须自定义合并它们。 现在的问题是,来自数据存储区的读取将不起作用,但这是在另一个线程中。