Spark JavaRDD获得了作为JavaRDD返回的十个第一个值

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

我有一个JavaRDD

JavaRDD<Tweet> ordered = ... ;

如名称所示,已经订购。我想采取前十个值(它按降序排列):

JavaRDD<Tweet> top10Followers = ordered.take(10);

但它给了我以下错误:

incompatible types: java.util.List<Tweet> cannot be converted to org.apache.spark.api.java.JavaRDD<Tweet>

拿回一个清单。有没有办法让前十名成为JavaRDD?

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

我没有我的笔记本电脑检查所以我会抛出想法。抱歉。

由于10是一个小数字,我会去收集然后并行化.. :-)

假设这是一个比10更通用的问题,但小到足以适合单个分区,那么可能: - 重新分配1(考虑添加合并) - sort - zipWithindex - filter(key小于“10”)

IMHO zipWithindex不会为多分区(无法检查)完成工作,因为它首先根据分区索引分配索引,然后分区内的排序。

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