Spark ジョブで 1,000 万エントリのキャッシュを作成するigniteRDD
と、1,000 万エントリすべてが spark コンテキストにロードされますか? 参照用に以下のコードを見つけてください。
SparkConf conf = new SparkConf().setAppName("IgniteSparkIntgr").setMaster("local");
JavaSparkContext context = new JavaSparkContext(conf);
JavaIgniteContext<Integer, Subscriber> igniteCxt = new JavaIgniteContext<Integer,Subscriber>(context,"example-ignite.xml");
JavaIgniteRDD<Integer,Subscriber> cache = igniteCxt.fromCache("subscriberCache");
DataFrame query_res = cache.sql("select id, lastName, company from Subscriber where id between ? and ?", 12, 15);
DataFrame input = loadInput(context);
DataFrame joined_df = input.join(query_res,input.col("id").equalTo(query_res.col("ID")));
System.out.println(joined_df.count());
上記のコードでsubscriberCache
は、1,000 万を超えるエントリがあります。上記のコードの任意の時点で、10M の Subscriber オブジェクトが JVM にロードされますか? それとも、クエリ出力のみをロードしますか?
参考までに:(Ignite は別の JVM で実行されています)