请您帮我弄清楚初始化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
设置分区数吗?答案 0 :(得分:1)
(免责声明:我是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))