论文部分内容阅读
随着社会信息化程度不断提升,各种形式的电子数据积累越来越多,且产生速度不断加快,传统的数据库系统难以快速高效地从这些超大规模的数据中挖掘有效信息。频繁项集挖掘是一个典型且重要的数据挖掘问题,它可以被广泛应用于电子商务、文本分类、生物信息学等领域。Apriori算法是一个经典的频繁项集挖掘算法,可以有效的处理中小规模的数据集。 但是,当数据规模不断增大时,Apriori算法将消耗大量的计算和存储资源。另一方面,对频繁项集的应用,通常具有时效性。即频繁项集的计算时间越长,最终结果所能体现的价值越小。当有新数据不断被采集,频繁项集结果也因此需要更新。如果在数据集发生变化后,采用传统的Apriori算法对新数据集进行重新处理,则将消耗大量计算时间,使计算成本提高,数据价值降低。 网络和分布式技术的不断成熟,使得处理海量数据逐渐变得高效。Spark即是一个通用的分布式数据处理平台,它借助大量商用计算机聚合的计算能力和存储能力,可以对海量数据进行快速处理。 另一方面,随着存储技术的进步,同时代商用计算机的存储成本相对计算成本越来越低,因此“空间换时间”的思想可以更好的运用在数据处理中,增量计算即是研究如何利用历史结果加快数据处理的一个研究领域。 本文通过研究Apriori算法,设计并实现了一种在Spark平台上的频繁项集挖掘及增量式更新算法。它借助Spark平台的并行处理能力,可以有效解决传统Apriori算法的数据规模问题。并且,通过设计合理的数据存取策略,可以实现频繁项集增量更新处理。最后,通过设计并实现一个自动化的数据变化感知模块,实现了数据集变化的自动感知及频繁项集自动更新的功能。实验证明,Spark平台上实现的频繁项集增量更新算法,不仅可以有效解决Apriori算法的数据规模问题,还能更高效地处理动态变化的数据集。