有一些过滤条件可以从elasticsearch数据中获取子集的计数。由于elasticsearch数据大小可能大于spark的内存大小,因此我决定不将其数据加载到spark内存中,而是针对每个过滤条件进行动态查询。 (我认为使用Elasticsearch查询获取文档的数量可能比依赖Spark内存更快)。问题在于,用于过滤Elasticsearch数据的elasticsearch查询必须位于spark rdd之内,如下所示。
conditionCountRDD = conditionRDD( condition=> /* elasticsearch query with condition */)
这是在Spark rdd中进行Elasticsearch查询的正确方法吗?如果是这样,我应该使用spark会话执行每个查询吗?还是有更好的方法做到这一点?