我有一台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>take返回一个列表。有没有办法获得前十名的JavaRDD?
发布于 2019-03-20 05:33:42
我没有检查我的笔记本电脑,所以我会抛出一些想法。抱歉的。
因为10是一个很小的数字,所以我会选择collect,然后再并行化。:-)
假设这是一个比10更一般的问题,但小到可以放入一个分区,那么可能是:-使用1重新分区(考虑添加合并)-排序-过滤- zipWithindex (键小于"10“)
IMHO zipWithindex不会做多分区的工作(不能检查),因为它首先根据分区索引分配索引,然后是分区内的排序。
https://stackoverflow.com/questions/55246160
复制相似问题