Есть ли способ с помощью Apache Spark уменьшить количество элементов в rdd [принять как преобразование]

Я работаю с Apache Spark для механизма обработки запросов. Проблема, с которой я недавно столкнулся, заключается в том, что я хочу ограничить количество элементов в файле rdd.

Я знаю, что в rdd есть функция take, которую можно использовать для извлечения только заданного количества элементов из rdd. Однако после применения этой функции результатом будет не rdd.

Важно, что даже если мы применим эту функциональность, rdd должен оставаться (как преобразование)

Итак, на данный момент я сделал следующее

public JavaRDD<Map<String,Object>> limitRDD(JavaRDD<Map<String,Object>> rdd, JavaSparkContext context, int number){
context.parallelize(rdd.take(number));
return rdd;

Я считаю, что это огромная трата времени. Однако я не могу придумать, как использовать преобразования, такие как карта, фильтр, для реализации этой функции.

Есть ли способ добиться этого без того, что я сделал здесь?

Спасибо


person Hyun Joon Kim    schedule 02.12.2015    source источник
comment
Спасибо, zero323, я никогда не думал о таком способе ограничения размера rdd. Он отлично работает   -  person Hyun Joon Kim    schedule 09.12.2015


Ответы (1)


Я думаю, sample может быть функцией, которую вы хотите.

person Ton Torres    schedule 02.12.2015
comment
Это не совсем то, что я имел в виду, но определенно сэмпл тоже сработает. Однако для этого случая мне нужен был постоянный результат для одного и того же ввода - person Hyun Joon Kim; 09.12.2015