通常在对表执行自联接时,会对连接表的ID进行限制,以避免对称结果和行与自身的连接。
似乎至少有三种方法可以在apache flink中实现自联接(如上所述here):
dataset.join(dataset)
。然而,前面提到的限制似乎不可能以这种方式实现。reduce
运算符并手动实现连接。这可能会导致记忆问题。reduceGroup
,flatMap
和reduceGroup
的组合。该方法用于图算法的一些凝胶实现,例如。 JaccardIndex,其中的操作名为GenerateGroupSpans
,GenerateGroups
,GenerateGroupPairs
。我不清楚这些名称是指某种模式还是计算策略。 是否有一种在Apache Flink中执行自联接的最佳方法,还是取决于用例?哪种方法最佳性能,内存和可靠性?是否有一般模式来理解方法3?