我在约100个文档上使用Whoosh创建索引,每个文档大约8MB。
我在这些文档中列出了需要搜索的1700万个短语,因此我考虑在EMR上使用PySpark来分配负载。有没有办法将整个Whoosh索引分发到每个节点,并且每次调用该函数时Spark都使用本地版本?这就是我的想法:
def searchFunc(searchphrase):
....
return results
phrasesRDD=sc.textFile('searchTermsFile.txt').map(lambda x: (x,searchFunc(x)))
元组的第一个元素是搜索短语,第二个元素是具有相关结果的对象,我稍后会做更多的工作。
如何将整个索引发送到每个节点并确保它读取本地副本而不是依赖于主节点的I / O?