从火花中的每个分区中选择N个元素

问题描述 投票:0回答:1

假设我有RDD。我将RDD的分区数设置为5。我想从每个分区中选择10个元素,并将它们存储在一个名为var1的变量中,然后再广播var1。我该如何实现?

如果我使用那将导致大量数据改组,因此我可以使用collect。我必须将每个分区中的选定元素存储在变量中。还请考虑这是一个迭代问题,我必须在X指定的迭代之后广播。

scala apache-spark rdd
1个回答
0
投票

您可以尝试使用.mapPartitionsWithIndex获取分区号,使用.groupBy进行分区分组,使用.zipWithIndex添加ID,然后使用.filter过滤每个组最多10条记录,最后使用.collect

© www.soinside.com 2019 - 2024. All rights reserved.