CN107807952B - 一种基于Spark的Apriori并行化方法、系统及装置 - Google Patents

一种基于Spark的Apriori并行化方法、系统及装置 Download PDF

Info

Publication number
CN107807952B
CN107807952B CN201710888089.3A CN201710888089A CN107807952B CN 107807952 B CN107807952 B CN 107807952B CN 201710888089 A CN201710888089 A CN 201710888089A CN 107807952 B CN107807952 B CN 107807952B
Authority
CN
China
Prior art keywords
frequent
transaction database
generating
candidate set
apriori
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201710888089.3A
Other languages
English (en)
Other versions
CN107807952A (zh
Inventor
赵淦森
张海明
王欣明
庄序填
林成创
蔡斯凯
李振宇
李胜龙
唐华
张奇支
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong Sword Data Big Data Technology Co ltd
South China Normal University
Original Assignee
Guangdong Sword Data Big Data Technology Co ltd
South China Normal University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangdong Sword Data Big Data Technology Co ltd, South China Normal University filed Critical Guangdong Sword Data Big Data Technology Co ltd
Priority to CN201710888089.3A priority Critical patent/CN107807952B/zh
Publication of CN107807952A publication Critical patent/CN107807952A/zh
Application granted granted Critical
Publication of CN107807952B publication Critical patent/CN107807952B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2465Query processing support for facilitating data mining operations in structured databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2216/00Indexing scheme relating to additional aspects of information retrieval not explicitly covered by G06F16/00 and subgroups
    • G06F2216/03Data mining

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Probability & Statistics with Applications (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Fuzzy Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于Spark的Apriori并行化方法、系统及装置,方法包括获取事务数据库,根据事务数据库生成候选集和频繁集;将候选集和频繁集分发至集群进行合并操作以及可配置的剪枝操作;根据合并操作和剪枝操作的结果,生成满足最小支持度的频繁集。系统包括预获取模块、处理模块和生成模块。装置包括存储器和处理器。本发明通过将频繁集分发至集群进行合并操作提高了候选集的生成速度以及效率;同时,本发明通过采用可配置的剪枝操作,提高了频繁集的生成速度并降低了网络开销。本发明作为一种基于Spark的Apriori并行化方法、系统及装置,可广泛应用于数据挖掘领域。

Description

一种基于Spark的Apriori并行化方法、系统及装置
技术领域
本发明涉及数据挖掘领域,尤其是一种基于Spark的Apriori并行化方法、系统及装置。
背景技术
现有基于Spark计算框架的Apriori算法并行化方案有YAFIM算法和R-Apriori算法。其中,YAFIM(Yet Another Frequent Itemset Mining Algorithm)算法是指将关联算法Apriori通过Spark计算框架进行并行化操作,并利用哈希树进行候选集的筛选工作,生成频繁集,该算法在合并步骤上通过原有本地生成的方法进行计算,速度慢且效率低;在剪枝步骤上,对事务数据库进行广播,利用了哈希树进行候选集筛选并输出频繁集,生成频繁集的速度慢。R-Apriori算法则针对YAFIM算法进行了优化,与YAFIM算法的不同之处在于利用布隆过滤器数据结构代替哈希树,提升生成频繁集的速度,但是这种生成频繁集的方式单一、不够灵活,在面对不同维度的频繁集时,网络开销增大、效率很低。
发明内容
为解决上述技术问题,本发明的目的在于:提供一种快速、高效、灵活而且网络开销小的基于Spark的Apriori并行化方法。
本发明的第二个目的在于:提供一种快速、高效、灵活而且网络开销小的基于Spark的Apriori并行化系统。
本发明的第三个目的在于:提供一种快速、高效、灵活而且网络开销小的基于Spark的Apriori并行化装置。
本发明采取的第一个技术方案是:
一种基于Spark的Apriori并行化方法,包括以下步骤:
获取事务数据库,根据事务数据库生成候选集和频繁集;
将候选集和频繁集分发至集群进行合并操作以及可配置的剪枝操作;
根据合并操作和剪枝操作的结果,生成满足最小支持度的频繁集。
进一步,所述获取事务数据库,根据事务数据库生成候选集和频繁集这一步骤,包括以下步骤:
获取事务数据库,将事务数据库加载至集群的各个计算节点;
根据事务数据库,生成候选集和频繁集。
进一步,所述将候选集和频繁集分发至集群进行合并操作这一步骤,包括以下步骤:
将频繁集分发至集群的各个计算节点,得到相应的频繁子集;
对各个计算节点中的频繁子集进行分块,得到相应的数据块;
采用笛卡尔乘积算子对数据块进行合并操作,生成高维候选集。
进一步,所述将候选集和频繁集分发至集群进行可配置的剪枝操作这一步骤,包括以下步骤:
判断候选集大小是否小于事务数据库大小,若是,则将候选集作为广播变量并将事务数据库作为缓存数据;反之,则将事务数据库作为广播变量并将候选集作为缓存数据;
根据广播变量和缓存数据,从低维向高维生成频繁集。
进一步,所述根据广播变量和缓存数据,从低维向高维生成频繁集这一步骤,包括以下步骤:
将缓存数据分布式缓存至各个计算节点;
将广播变量分发至各个计算节点中的数据块;
根据各个数据块中的广播变量与缓存数据的相对大小,计算各个数据块中候选集的支持度;
根据计算出的各个数据块的支持度与设定的最小支持度的相对大小,从低维向高维生成频繁集。
进一步,所述根据合并操作和剪枝操作的结果,生成满足最小支持度的频繁集这一步骤,包括以下步骤:
根据设定的维度,判断高维频繁集是否满足当前维度小于设定的维度且高维频繁集不为空的条件,若是,则根据高维频繁集返回将频繁集分发至集群的各个计算节点,得到相应的频繁子集这一步骤;反之,则执行下一步骤;
将高维频繁集作为最终满足最小支持度的频繁集并进行输出。
本发明采取的第二个技术方案是:
一种基于Spark的Apriori并行化系统,包括:
获取模块,用于获取事务数据库,根据事务数据库生成候选集和频繁集;
处理模块,用于将候选集和频繁集分发至集群进行合并操作以及可配置的剪枝操作;
生成模块,用于根据合并操作和剪枝操作的结果,生成满足最小支持度的频繁集。
进一步,所述处理模块包括:
分发单元,用于将频繁集分发至集群的各个计算节点,得到相应的频繁子集;
分块单元,用于对各个计算节点中的频繁子集进行分块,得到相应的数据块;
组合单元,用于采用笛卡尔乘积算子对数据块进行组合操作,生成高维候选集。
进一步,所述处理模块还包括:
判断单元,判断候选集大小是否小于事务数据库大小,若是,则将候选集作为广播变量并将事务数据库作为缓存数据;反之,则将事务数据库作为广播变量并将候选集作为缓存数据;
生成单元,用于根据广播变量和缓存数据,从低维向高维生成频繁集。
本发明采取的第三个技术方案是:
一种基于Spark的Apriori并行化装置,包括:
存储器,用于存放程序;
处理器,执行所述程序,以用于:获取事务数据库,根据事务数据库生成候选集和频繁集;将候选集和频繁集分发至集群进行合并操作以及可配置的剪枝操作;根据合并操作和剪枝操作的结果,生成满足最小支持度的频繁集。
本发明的方法的有益效果是:本发明的方法通过将频繁集分发至集群进行合并操作,克服了现有方法通过本地进行合并操作而导致候选集生成速度慢以及效率低的缺点,提高了候选集的生成速度以及效率;另外,本发明的方法通过采用可配置的剪枝操作,克服了现有方法生成频繁集的方式单一而导致效率低以及网络开销大的缺点,提高了频繁集的生成速度并降低了网络开销。
本发明的系统的有益效果是:增设了处理模块,通过处理模块将频繁集分发至集群进行合并操作,克服了现有系统通过本地进行合并操作而导致候选集生成速度慢以及效率低的缺点,提高了候选集的生成速度以及效率;另外,本发明的系统还通过处理模块进行可配置的剪枝操作,克服了现有系统生成频繁集的方式单一而导致效率低以及网络开销大的缺点,提高了频繁集的生成速度并降低了网络开销。
本发明的装置的有益效果是:本发明的装置通过处理器将频繁集分发至集群进行合并操作,克服了现有装置通过本地进行合并操作而导致候选集生成速度慢以及效率低的缺点,提高了候选集的生成速度以及效率;另外,本发明的处理器通过可配置的剪枝操作,克服了现有装置生成频繁集的方式单一而导致效率低以及网络开销大的缺点,提高了频繁集的生成速度并降低了网络开销。
附图说明
图1为本发明一种基于Spark的Apriori并行化方法的步骤流程图;
图2为本发明实施例一的整体步骤流程图;
图3为本发明实施例一的并行化计算过程示意图。
具体实施方式
参照图1,一种基于Spark的Apriori并行化方法,包括以下步骤:
获取事务数据库,根据事务数据库生成候选集和频繁集;
将候选集和频繁集分发至集群进行合并操作以及可配置的剪枝操作;
根据合并操作和剪枝操作的结果,生成满足最小支持度的频繁集。
其中,所述合并操作以及剪枝操作实质是迭代的过程,迭代的过程具体是指:将每次合并操作和剪枝操作生成的候选集和频繁集作为下一次迭代的输入数据,直至生成的频繁集满足最小支持度。
可配置的剪枝操作,是指针对不同的事务数据库,采用可调的方式(如将事务数据库作为广播变量或者缓存数据)进行剪枝操作。
进一步作为优选的实施方式,所述获取事务数据库,根据事务数据库生成候选集和频繁集这一步骤,包括以下步骤:
获取事务数据库,将事务数据库加载至集群的各个计算节点;
根据事务数据库,生成候选集和频繁集。
其中,集群中的每个计算节点包含一个或多个执行器,每个执行器包含一个或多个分区,每个分区对应一个执行任务。所述执行器用于执行Spark应用各类操作的程序,驱动器程序一般管理多个执行器。所述驱动器程序(Driver Program)用来发起集群上的各种并行操作,驱动器程序包含Spark应用的main函数,即为Spark应用的入口程序,并且驱动器程序中定义了集群上的分布式数据集,还对这些分布式数据集应用了相关操作。
进一步作为优选的实施方式,所述将候选集和频繁集分发至集群进行合并操作这一步骤,包括以下步骤:
将频繁集分发至集群的各个计算节点,得到相应的频繁子集;
对各个计算节点中的频繁子集进行分块,得到相应的数据块;
采用笛卡尔乘积算子对数据块进行合并操作,生成高维候选集。
其中,本实施方式中的高维候选集是指此步骤生成的候选集维度高于前面步骤生成的候选集。
进一步作为优选的实施方式,所述将候选集和频繁集分发至集群进行可配置的剪枝操作这一步骤,包括以下步骤:
判断候选集大小是否小于事务数据库大小,若是,则将候选集作为广播变量并将事务数据库作为缓存数据;反之,则将事务数据库作为广播变量并将候选集作为缓存数据;
根据广播变量和缓存数据,从低维向高维生成频繁集。
其中,本实施方式中的候选集是指整个迭代过程中产生的全部维度的候选集均可与事务数据库进行大小比较,从而确定相应的广播变量和缓存数据。另外,类似于高维候选集,本实施方式中的从低维向高维生成频繁集是指此步骤生成的频繁集维度高于前面步骤生成的频繁集。
进一步作为优选的实施方式,所述根据广播变量和缓存数据,从低维向高维生成频繁集这一步骤,包括以下步骤:
将缓存数据分布式缓存至各个计算节点;
将广播变量分发至各个计算节点中的数据块;
根据各个数据块中的广播变量与缓存数据的相对大小,计算各个数据块中候选集的支持度;
根据计算出的各个数据块的支持度与设定的最小支持度的相对大小,从低维向高维生成频繁集。
其中,生成高维频繁集的步骤具体为:比较计算出的各个数据块的支持度与最小支持度的大小,将对应支持度大于最小支持度的候选集进行输出,比较完所有数据块的支持度之后,将输出的所有候选集整合为高维频繁集。
进一步作为优选的实施方式,所述根据合并操作和剪枝操作的结果,生成满足最小支持度的频繁集这一步骤,包括以下步骤:
根据设定的维度,判断高维频繁集是否满足当前维度小于设定的维度且高维频繁集不为空的条件,若是,则根据高维频繁集返回将频繁集分发至集群的各个计算节点,得到相应的频繁子集这一步骤;反之,则执行下一步骤;
将高维频繁集作为最终满足最小支持度的频繁集并进行输出。
其中,当高维频繁集不满足当前维度小于设定的维度且高维频繁集不为空的条件时,则将当前高维频繁集作为下一次迭代的输入,即将其作为频繁集分发至集群的各个计算节点,直至生成满足最小支持度的高维频繁集。
与图1的方法相对应,本发明还提供了一种基于Spark的Apriori并行化系统,包括:
获取模块,用于获取事务数据库,根据事务数据库生成候选集和频繁集;
处理模块,用于将候选集和频繁集分发至集群进行合并操作以及可配置的剪枝操作;
生成模块,用于根据合并操作和剪枝操作的结果,生成满足最小支持度的频繁集。
进一步作为优选的实施方式,所述处理模块包括:
分发单元,用于将频繁集分发至集群的各个计算节点,得到相应的频繁子集;
分块单元,用于对各个计算节点中的频繁子集进行分块,得到相应的数据块;
组合单元,用于采用笛卡尔乘积算子对数据块进行组合操作,生成高维候选集。
进一步作为优选的实施方式,所述处理模块还包括:
判断单元,判断候选集大小是否小于事务数据库大小,若是,则将候选集作为广播变量并将事务数据库作为缓存数据;反之,则将事务数据库作为广播变量并将候选集作为缓存数据;
生成单元,用于根据广播变量和缓存数据,从低维向高维生成频繁集。
与图1的方法相对应,本发明还提供了一种基于Spark的Apriori并行化装置,包括:
存储器,用于存放程序;
处理器,执行所述程序,以用于:获取事务数据库,根据事务数据库生成候选集和频繁集;将候选集和频繁集分发至集群进行合并操作以及可配置的剪枝操作;根据合并操作和剪枝操作的结果,生成满足最小支持度的频繁集。
下面结合说明书附图和具体实施例对本发明作进一步解释和说明。
实施例一
现有的Apriori并行化在本地进行频繁集合并操作,由于单机资源有限,因此生成候选集的速度慢且效率低;另外,现有的剪枝操作只将事务数据库进行广播,导致在面对较大事务数据库的时候,网络的开销大幅增加、生成频繁集的速度也大幅降低。本发明提出一种基于Spark的Apriori并行化方法、系统及装置,克服了现有技术的上述缺点,提高了运行速度以及生成效率,同时还降低了网络开销。
下面从名词解释和具体实现过程这两方面入手对本发明的基于Spark的Apriori并行化方法进行详细说明。
(一)名词解释
本发明涉及到的专有名词如下:
Spark计算框架:Spark是一个用于实现快速而通用的集群计算的框架,可以在分布式内存中进行并行计算,并能构建出不同处理模型的应用。
Apriori算法是一种通过生成频繁集的方式来挖掘关联规则的算法,其核心思想是通过合并和剪枝两个阶段来生成频繁集。
驱动器(Driver):每一个Spark应用都由一个驱动器程序(Driver Program)来发起集群上的各种并行操作。驱动器程序包含应用的main函数,即应用的入口程序,并且定义了集群上的分布式数据集,还对这些分布式数据集应用了相关操作。
执行器(Executor):用于执行Spark应用各类操作的程序,驱动器程序一般管理多个执行器。集群中的每个计算节点包含一个或多个执行器,每个执行器包含一个或多个分区,每个分区对应一个执行任务。
项集(Itemset):假设I为一个项目(简称项)的集合,来自I的多个项的集合称为一个项集。如果一个项集由k个项目组成,则称之为k项集。如果一条事务包含k个元素,则该事务为k项集,相应地满足用户指定的最小支持度的k项集称为k项频繁集。
频繁集(Frequent ItemSet):假设D为关于一个项的集合I的事务数据库,D中的每一条事务t包含来自I的多个项的集合,简称频繁集;每一条事务t都有一个唯一的标记tid,表示为t.tid。一个项集X的支持度,表示为σ(X),代表包含子集为X的事务的个数。如果项集X是频繁的,则表示X的支持度σ(X)不小于用户指定的最小支持度的阈值。
支持度(Support):支持度Sup(A,B)=P(A,B),表示项目A和项目B同时发生的概率。
事务数据库(Transaction Database):事务是指数据库中处理的每一条记录,是项目(Item)的集合。由多条事务构成的数据库称为事务数据库。
分布式缓存:在算法开始阶段将RDD数据预加载到各个计算节点进行缓存,以供计算过程中的访问使用。
广播操作:将一份只读数据发送到所有计算节点,以供一个或多个Spark操作使用。
广播变量:由广播操作发送的只读值即为广播变量,它是一种共享变量类型。
(二)一种基于Spark的Apriori并行化方法的具体实现过程及实现原理
参照图2,下面详细介绍本发明的一种基于Spark的Apriori并行化方法的整体步骤流程:
S1、获取并对事务数据库进行预处理,根据事务数据库生成候选集和频繁集,具体包括以下步骤:
1)、获取事务数据库,将事务数据库加载至所有分布式计算节点;
2)、根据事务数据库,生成低维频繁集。
由于整个实现过程实际是迭代的过程,期间会将上一次迭代的输出结果作为下一次迭代的输入数据,为了加以区分,将相对处理步骤在前的项集命名为低维项集,处理步骤在后的项集命名为高维项集。
S2、将低维频繁集分发至集群进行合并操作,生成高维候选集(如将k-1项频繁集生成k项候选集,通过单机计算,将开销分而治之,实现并行处理以提升效率)。具体包括以下步骤:
1)、将低维频繁集分发至各个计算节点,得到相应的低维频繁子集;
2)、对各个计算节点中的低维频繁子集进行分块,得到相应的数据块;
3)、采用笛卡尔乘积算子对数据块进行组合操作,生成高维候选集。
其中,合并步骤采用自连接操作,按照字典顺序对k-1项频繁集L(k-1)进行连接,生成k项候选集Ck,该步骤要求进行组合的频繁集L(k-1)的前(k-2)项相同,且第(k-1)项不同,例如:二项频繁集{1,3}和{1,5}合并生成三项候选集{1,3,5}。
并行计算通过处理单元相互之间的通信与协作,以获得比串行计算更快的速度来完成一项大规模的计算任务,所述笛卡尔乘积算子正是基于分布式内存的,本发明改进了通过主节点收集数据并在本地计算的方法,直接采用分布式笛卡尔乘积算子,将数据加载到分布式内存,在进行快速组合计算之后,再对(k+1)项候选集进行收集和广播。
S3、采用可配置的频繁项生成方式,对候选集进行剪枝操作,生成当前高维频繁集。可配置的频繁项生成方式是指针对不同大小的事务数据库和高维候选集,剪枝操作中广播变量和缓存数据的具体对象可灵活选取,以此降低网络开销并提高生成效率,具体包括以下步骤:
1)、判断候选集是否小于事务数据库,若是,则将候选集作为广播变量并将事务数据库作为缓存数据;反之,则将事务数据库作为广播变量并将高维候选集作为缓存数据。
也就是说,在面对不同维度频繁集的生成阶段中,对比候选集与事务数据库的大小,较小的作为广播变量分发到各个计算节点,较大的作为分布式缓存分发到集群,以此降低网络开销,提高效率。
2)、将缓存数据分布式缓存至各个计算节点;
将迭代计算过程中都要用到的数据进行缓存,能够减少迭代过程的计算量并能提高后续步骤的比对效率。
3)、将广播变量分发至各个计算节点中的数据块;
其中使用广播变量的优势在于一旦分发完成,下次如果需要访问到该数据,则不必再重新计算生成。
4)、比较各个数据块中的广播变量与缓存数据的大小;根据比较结果,计算各个数据块中高维候选集的支持度;
5)、根据设定的最小支持度,比较计算出的各个支持度与最小支持度的大小;根据比较结果,输出高维频繁集。
也就是说,剪枝操作是指对所有的k项候选集Ck进行筛选,输出满足最小支持度的k项频繁集Lk。该步骤可以通过检查候选集Ck的子集是否频繁来判断,也可以通过扫描事务数据库进行判断。例如使用扫描事务数据库的方式:如果Ck出现在事务数据库中,则计数,否则不进行计数;扫描结束后,如果Ck的计数除以事务总数后得到的支持度小于最小支持度,则删除,否则作为频繁集Lk进行输出。
本发明的剪枝操作的优势还在于:将基于支持度的剪枝操作分发到各个计算节点,利用集群多节点、多处理器的并行计算优势,获得比串行计算更快的运行速度。
对当前高维频繁集进行收集,将收集结果作为下一次迭代的输入,同时销毁候选集,以此过滤掉不符合条件的候选集。
S4、对当前高维候选集和当前高维频繁集进行迭代处理,直至输出满足最小支持度的频繁集。具体包括以下步骤:
1)、根据设定的维度,判断高维频繁集是否满足当前维度小于设定的维度且高维频繁集不为空的条件,若是,则将高维频繁集作为频繁集并返回将频繁集分发至集群的各个计算节点,得到相应的频繁子集这一步骤;反之,则执行下一步骤;
2)、将当前高维频繁集作为满足最小支持度的频繁集并输出该频繁集。
以二项频繁集的生成过程为例,本发明的一种基于Spark的Apriori并行化方法的具体计算逻辑如图3所示:
步骤一:输入数据,并将数据分发至各个计算节点;
步骤二:初步计算生成一项频繁集;
步骤三:生成二项候选集;
步骤四:根据二项候选集生成二项频繁集;
步骤五:进行筛选判断,得到满足最小支持度要求的最终结果。
其中,如图3所示,带符号
Figure BDA0001420542250000091
的项表示不满足最小支持度要求的项(如
Figure BDA0001420542250000093
Figure BDA0001420542250000092
,需要进行剔除。
以上是对本发明的较佳实施进行了具体说明,但本发明并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。

Claims (8)

1.一种基于Spark的Apriori并行化方法,其特征在于,包括以下步骤:
获取事务数据库,根据事务数据库生成候选集和频繁集;
将候选集和频繁集分发至集群进行合并操作以及可配置的剪枝操作;
根据合并操作和剪枝操作的结果,生成满足最小支持度的频繁集;
其中,所述将候选集和频繁集分发至集群进行可配置的剪枝操作这一步骤,包括以下步骤:
判断候选集大小是否小于事务数据库大小,若是,则将候选集作为广播变量并将事务数据库作为缓存数据;反之,则将事务数据库作为广播变量并将候选集作为缓存数据;
根据广播变量和缓存数据,从低维向高维生成频繁集;
其中,所述根据广播变量和缓存数据,从低维向高维生成频繁集这一步骤,包括以下步骤:
将缓存数据分布式缓存至各个计算节点;
将广播变量分发至各个计算节点中的数据块;
根据各个数据块中的广播变量与缓存数据的相对大小,计算各个数据块中候选集的支持度;
根据计算出的各个数据块的支持度与设定的最小支持度的相对大小,从低维向高维生成频繁集。
2.根据权利要求1所述的一种基于Spark的Apriori并行化方法,其特征在于:所述获取事务数据库,根据事务数据库生成候选集和频繁集这一步骤,包括以下步骤:
获取事务数据库,将事务数据库加载至集群的各个计算节点;
根据事务数据库,生成候选集和频繁集。
3.根据权利要求1所述的一种基于Spark的Apriori并行化方法,其特征在于:所述将候选集和频繁集分发至集群进行合并操作这一步骤,包括以下步骤:
将频繁集分发至集群的各个计算节点,得到相应的频繁子集;
对各个计算节点中的频繁子集进行分块,得到相应的数据块;
采用笛卡尔乘积算子对数据块进行合并操作,生成高维候选集。
4.根据权利要求1所述的一种基于Spark的Apriori并行化方法,其特征在于:所述根据合并操作和剪枝操作的结果,生成满足最小支持度的频繁集这一步骤,包括以下步骤:
根据设定的维度,判断高维频繁集是否满足当前维度小于设定的维度且高维频繁集不为空的条件,若是,则根据高维频繁集返回将频繁集分发至集群的各个计算节点,得到相应的频繁子集这一步骤;反之,则执行下一步骤;
将高维频繁集作为最终满足最小支持度的频繁集并进行输出。
5.一种基于Spark的Apriori并行化系统,其特征在于,包括:
获取模块,用于获取事务数据库,根据事务数据库生成候选集和频繁集;
处理模块,用于将候选集和频繁集分发至集群进行合并操作以及可配置的剪枝操作;生成模块,用于根据合并操作和剪枝操作的结果,生成满足最小支持度的频繁集。
6.根据权利要求5所述的一种基于Spark的Apriori并行化系统,其特征在于,所述处理模块包括:
分发单元,用于将频繁集分发至集群的各个计算节点,得到相应的频繁子集;
分块单元,用于对各个计算节点中的频繁子集进行分块,得到相应的数据块;
组合单元,用于采用笛卡尔乘积算子对数据块进行组合操作,生成高维候选集。
7.根据权利要求5所述的一种基于Spark的Apriori并行化系统,其特征在于,所述处理模块还包括:
判断单元,判断候选集大小是否小于事务数据库大小,若是,则将候选集作为广播变量并将事务数据库作为缓存数据;反之,则将事务数据库作为广播变量并将候选集作为缓存数据;
生成单元,用于根据广播变量和缓存数据,从低维向高维生成频繁集。
8.一种基于Spark的Apriori并行化装置,其特征在于,包括:
存储器,用于存放程序;
处理器,执行所述程序,以用于:获取事务数据库,根据事务数据库生成候选集和频繁集;将候选集和频繁集分发至集群进行合并操作以及可配置的剪枝操作;根据合并操作和剪枝操作的结果,生成满足最小支持度的频繁集。
CN201710888089.3A 2017-09-27 2017-09-27 一种基于Spark的Apriori并行化方法、系统及装置 Active CN107807952B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710888089.3A CN107807952B (zh) 2017-09-27 2017-09-27 一种基于Spark的Apriori并行化方法、系统及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710888089.3A CN107807952B (zh) 2017-09-27 2017-09-27 一种基于Spark的Apriori并行化方法、系统及装置

Publications (2)

Publication Number Publication Date
CN107807952A CN107807952A (zh) 2018-03-16
CN107807952B true CN107807952B (zh) 2021-06-01

Family

ID=61592469

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710888089.3A Active CN107807952B (zh) 2017-09-27 2017-09-27 一种基于Spark的Apriori并行化方法、系统及装置

Country Status (1)

Country Link
CN (1) CN107807952B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112257285B (zh) * 2020-10-30 2021-12-31 中国民航大学 用于大规模分布式仿真的轻量化dds自动发现方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104573124A (zh) * 2015-02-09 2015-04-29 山东大学 一种基于并行化关联规则算法的教育云应用统计方法
CN105354336A (zh) * 2015-12-07 2016-02-24 Tcl集团股份有限公司 一种处理交易事务数据库数据的方法和装置
CN106021412A (zh) * 2016-05-13 2016-10-12 上海市计算技术研究所 一种面向大规模过车数据的伴随车辆识别方法
CN106202575A (zh) * 2016-08-22 2016-12-07 东南大学 一种基于Apriori的分布式快速频繁项集挖掘方法
CN106547907A (zh) * 2016-11-24 2017-03-29 四川师范大学 一种频繁项集获取方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4039488B2 (ja) * 2003-08-18 2008-01-30 インターナショナル・ビジネス・マシーンズ・コーポレーション 多頻度パターン抽出装置、多頻度パターン抽出方法、及びそのプログラムと記録媒体

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104573124A (zh) * 2015-02-09 2015-04-29 山东大学 一种基于并行化关联规则算法的教育云应用统计方法
CN105354336A (zh) * 2015-12-07 2016-02-24 Tcl集团股份有限公司 一种处理交易事务数据库数据的方法和装置
CN106021412A (zh) * 2016-05-13 2016-10-12 上海市计算技术研究所 一种面向大规模过车数据的伴随车辆识别方法
CN106202575A (zh) * 2016-08-22 2016-12-07 东南大学 一种基于Apriori的分布式快速频繁项集挖掘方法
CN106547907A (zh) * 2016-11-24 2017-03-29 四川师范大学 一种频繁项集获取方法及装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Apriori算法的改进及其在试卷分析系统中的应用;孙秀娟等;《北京工业职业技术学院学报》;20121031;第11卷(第4期);第2页 *
基于Spark的Apriori并行算法优化实现;王青等;《郑州大学学报(理学版)》;20161231;第48卷(第4期);第2-4页 *
王青等.基于Spark的Apriori并行算法优化实现.《郑州大学学报(理学版)》.2016,第48卷(第4期), *

Also Published As

Publication number Publication date
CN107807952A (zh) 2018-03-16

Similar Documents

Publication Publication Date Title
Lu et al. SpWA: An efficient sparse winograd convolutional neural networks accelerator on FPGAs
Lieberman et al. A fast similarity join algorithm using graphics processing units
US9411853B1 (en) In-memory aggregation system and method of multidimensional data processing for enhancing speed and scalability
US8400458B2 (en) Method and system for blocking data on a GPU
CN108170639B (zh) 基于分布式环境的张量cp分解实现方法
Bender et al. Cache-adaptive algorithms
US20120290615A1 (en) Switching algorithms during a run time computation
US20150213074A1 (en) Method for pre-processing and processing query operation on multiple data chunk on vector enabled architecture
US11221890B2 (en) Systems and methods for dynamic partitioning in distributed environments
Han et al. Distme: A fast and elastic distributed matrix computation engine using gpus
US10162830B2 (en) Systems and methods for dynamic partitioning in distributed environments
CN108334532B (zh) 一种基于Spark的Eclat并行化方法、系统及装置
Borah et al. A GPU algorithm for detecting contextual outliers in multiple concurrent data streams
CN107807952B (zh) 一种基于Spark的Apriori并行化方法、系统及装置
JP4511469B2 (ja) 情報処理方法及び情報処理システム
Bai et al. Association rule mining algorithm based on Spark for pesticide transaction data analyses
Leal et al. TKSimGPU: A parallel top-K trajectory similarity query processing algorithm for GPGPUs
CN108536824B (zh) 一种数据处理方法及装置
Cicek et al. Energy efficient boosting of GEMM accelerators for DNN via reuse
Kozawa et al. GPU acceleration of probabilistic frequent itemset mining from uncertain databases
CN113608724A (zh) 一种基于模型缓存实现的离线仓库实时交互方法与系统
CN109002467B (zh) 一种基于向量化执行的数据库排序方法及系统
Kruliš et al. Optimizing sorting and top-k selection steps in permutation based indexing on GPUs
US7644083B1 (en) Efficiently performing inequality joins
Wu et al. Efficiently Processing Large Relational Joins on GPUs

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant