您能否帮我弄清楚初始化Spark RDD会发生什么?
有一个官方示例here:
val capitals = spark.read.parquet("capitals.parquet").select("name", "country")
val luceneRDD = LuceneRDD(capitals)
val result = luceneRDD.termQuery("name", "ottawa", 10)
但是我对Scala并不熟悉,并且在阅读源代码时遇到了麻烦。您能否回答下一个问题:
capitals.parquet
?如何索引每列的每一行(所有值)? luceneRDD
的分区数量吗? 最佳答案
(免责声明:我是LuceneRDD的作者)
看一下我准备的幻灯片:
https://www.slideshare.net/zouzias/lucenerdd-for-geospatial-search-and-entity-linkage
简而言之,LuceneRDD实例化每个Spark执行程序上的反向索引,并将搜索结果从Spark执行程序收集/汇总到Spark驱动程序。 LuceneRDD背后的主要动机是通过全文搜索,地理空间搜索和实体链接来自然扩展Spark的功能,而无需外部依赖SolrCloud或Elasticsearch集群。
要回答您的问题:
LuceneRDD(capitals.repartition(numPartitions=10))