首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spark JavaRDD获取作为JavaRDD返回的十个第一个值

Spark JavaRDD获取作为JavaRDD返回的十个第一个值
EN

Stack Overflow用户
提问于 2019-03-20 00:48:57
回答 1查看 199关注 0票数 0

我有一台JavaRDD

代码语言:javascript
复制
JavaRDD<Tweet> ordered = ... ;

顾名思义,它已经被订购了。我想取前十个值(按降序排列):

代码语言:javascript
复制
JavaRDD<Tweet> top10Followers = ordered.take(10);

但它给出了以下错误:

代码语言:javascript
复制
incompatible types: java.util.List<Tweet> cannot be converted to org.apache.spark.api.java.JavaRDD<Tweet>

take返回一个列表。有没有办法获得前十名的JavaRDD?

EN

回答 1

Stack Overflow用户

发布于 2019-03-20 05:33:42

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

因为10是一个很小的数字,所以我会选择collect,然后再并行化。:-)

假设这是一个比10更一般的问题,但小到可以放入一个分区,那么可能是:-使用1重新分区(考虑添加合并)-排序-过滤- zipWithindex (键小于"10“)

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55246160

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档