クエリ処理エンジンとして Apache Spark を使用しています。最近直面した問題は、rdd の要素数を制限したいということです。
rdd には、rdd から指定された数の要素のみを取得するために使用できる take 関数があることを知っています。ただし、この関数を適用すると、結果は rdd になりません。
この機能を適用しても、rdd は (変換として) そのままにしておく必要があります。
だから今のところ私がしたことは次のとおりです
public JavaRDD<Map<String,Object>> limitRDD(JavaRDD<Map<String,Object>> rdd, JavaSparkContext context, int number){
context.parallelize(rdd.take(number));
return rdd;
これはかなりの時間の無駄だと思います。ただし、マップ、フィルターなどの変換を使用してこの機能を実装する方法は考えられません。
私がここでやったことなしにこれを達成する方法はありますか?
ありがとう