Spark 的基于 RDD 的 Apriori 算法挺有意思的,适合大数据频繁项集挖掘。Apriori 算法最初是在 Hadoop 上实现的,但由于 Hadoop 的 I/O 性能问题,迭代算法时有点拖后腿。Spark 作为一个内存计算平台,速度相当快,而且适合做这种迭代任务。多 Spark 上的 Apriori 实现都会用哈希树、Trie 或者哈希表 Trie 作为基础数据结构。实验表明,尽管这些数据结构的表现差别不大,但在 Spark 分布式环境下,Trie 和哈希表 Trie 比哈希树更高效,性能提升。
如果你对大数据挖掘感兴趣,尤其是频繁项集算法,不妨研究一下这些数据结构的实现。你可以看看相关文献,了解不同实现方式的性能差异,这样能你在实际应用中做出更合适的选择。
如果你是 Spark 的使用者,了解这些不同的数据结构选择可以你优化算法的效率,提升整个应用的性能。实验结果也表明,这些优化不只是在理论上有意义,实际运行中的差异也,值得一试。