apache Flink中的重叠分区



在Apache Flink中使用自定义分区时,我想将数据集的一些元素分配给多个分区。目前,我试图复制这些元素,并将每个元素分配给一个集群。我想知道有什么办法吗?如果不是,复制数据集子集的有效方法是什么?

为了生成重叠的分区,首先必须复制元素。假设您知道要复制哪些元素,则可以使用flatMap操作来完成此操作。由于要将重复的元素分配给不同的分区,因此最好从flatMap操作中分配分区ID。基于这个ID,您可以应用分区步骤。

给定一个输入数据集input: DataSet[IN],您生成一个重复的数据集duplicated: DataSet[(Int, IN)],其中包含原始输入元素的元组及其相应的分区ID。然后,您可以在第一个元组字段上应用分区。

val duplicatedDS: DataSet[(Int, IN)] = input.flatMap(x => duplicateElement(x))
val partitioned = duplicatedDS.partitionByHash(0) 

相关内容

  • 没有找到相关文章

最新更新