Spark JavaRDD получает десять первых значений, возвращаемых как JavaRDD - PullRequest
0 голосов
/ 19 марта 2019

У меня есть 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?

1 Ответ

0 голосов
/ 20 марта 2019

Мне не нужно проверять свой ноутбук, поэтому я буду подбрасывать идеи. К сожалению.

Поскольку 10 - это небольшое число, я бы пошел с коллекцией и затем распараллелил ..: -)

Если предположить, что это более общий вопрос, чем 10, но достаточно маленький, чтобы поместиться в один раздел, то возможно: - перераспределение с 1 (рассмотрите возможность добавления коалесции) - Сортировать - zipWithindex - фильтр (ключ меньше 10)

IMHO zipWithindex не будет выполнять работу для нескольких разделов (не может проверить), потому что он назначает индексы сначала на основе индекса раздела, а затем упорядочения внутри раздела.

...