假设我有RDD。我将RDD的分区数设置为5。我想从每个分区中选择10个元素,并将它们存储在一个名为var1的变量中,然后再广播var1。我该如何实现?
如果我使用那将导致大量数据改组,因此我可以使用collect。我必须将每个分区中的选定元素存储在变量中。还请考虑这是一个迭代问题,我必须在X指定的迭代之后广播。
您可以尝试使用.mapPartitionsWithIndex
获取分区号,使用.groupBy
进行分区分组,使用.zipWithIndex
添加ID,然后使用.filter
过滤每个组最多10条记录,最后使用.collect
。