基于Spark系统的大规模对象识别方法

文档序号:8258969阅读:201来源:国知局
基于Spark系统的大规模对象识别方法
【技术领域】
[0001] 本发明涉及数据处理技术领域,尤其涉及一种基于Spark系统的大规模对象识别 方法。
【背景技术】
[0002] 网络技术飞速发展的今天,大量网络应用和产品的使用产生了海量的数据,当我 们需要对数据进行清洗、集成时,就需要识别出这些数据中哪些记录是描述同一现实对象 的。举个例子:各个电商销售商品时通常会记录消费者本身的信息(姓名、性别、年龄、电 话、邮箱、住址等)以及商品的信息(如商品名称、类别、单价、数量等),当需要分析消费者 的消费行为时,首要的事情时根据记录中消费者的信息来识别哪些记录是隶属于同一现实 消费者,而通常不同的电商记录的消费者信息内容会有所不同,或者同一现实消费者在各 电商网站注册的信息有差异,部分数据会缺少甚至错误,因此不能通过简单的去重来识别 同一消费者。
[0003] 对象识别又称记录匹配,其目的是从(不可靠的)各种数据源中识别出表示同一 现实对象的记录。对象识别在数据清洗、数据集成、数据分析等应用中具有重要作用。在实 际应用中,一个对象的信息通常需要与其他数据源的信息进行关联。然而,其他数据源中表 示同一对象的信息可能存在错误或具有不同的表示形式。因此,对象识别并不简单,特别是 在互联网技术的迅猛发展的今天,数据在急剧膨胀,采用传统的方法从海量数据中识别出 哪些对象是相同(或相似的)几乎不可行,相关问题亟需解决。其中包含两个关键问题:一 是针对数据缺少与错误的情况如何识别同一对象;二是面对海量的数据如何解决匹配效率 问题,传统的策略面对海量数据时已无能为力。
[0004] 另一方面,Spark系统是一个开源的通用并行分布式计算框架,由加州大学伯克利 分校的AMP实验室开发,适合各种迭代算法和交互式数据分析,能够提升大数据处理的实 时性和准确性,现已逐渐获得很多企业的支持。Spark是一种与Hadoop相似的开源集群计 算环境,但是Spark启用了内存分布数据集,中间输出结果可以保存在内存中,从而不再需 要读写HDFS,缩短访问延迟,除了能够提供交互式查询外,还可以优化迭代工作负载。因此 Spark系统能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。

【发明内容】

[0005] 本发明的目的在于提供一种基于Spark系统的大规模对象识别方法,能够提高面 对海量数据的匹配效率。
[0006] 为实现上述目的,本发明提供一种基于Spark系统的大规模对象识别方法,包括:
[0007] 步骤10、读取并解析所有匹配规则;
[0008] 步骤20、读取并解析作为对象描述数据的记录;
[0009] 步骤30、对于每个匹配规则,如果记录具有该匹配规则所需的所有属性,匹配结果 为该记录的该所有属性的内容所组成的属性串以及该记录的记录id ;
[0010] 步骤40、将相同属性串对应的记录id聚集在一起成为记录id的集合,以该记录 id的集合标识同一对象;
[0011] 步骤50、对每个对象所具有的记录id广播其所属的对象,对于同一记录id所对应 的对象进行传递闭包处理得到新的对象;
[0012] 步骤60、反复进行步骤50,直至对象的数量没有改变。
[0013] 其中,步骤30还包括:如果记录不匹配任一匹配规则,匹配结果包括特殊值和该 记录的记录id〇
[0014] 其中,步骤50包括:
[0015] 步骤501、对每个对象所具有的记录id广播其所属的对象;
[0016] 步骤502、收集每个记录id所属的对象,如果记录id所属的对象只有一个,则标记 对应的对象的状态为保留;否则合并所有对象中的记录id并去重,生成新的对象并标记该 新的对象的状态为新增,标记每个旧的对象的状态为删除;
[0017] 步骤503、合并每个对象的状态信息,如果状态内包含新增,此对象需保留;如果 状态内包含删除,此对象需删除;否则,此对象需保留;
[0018] 步骤504、输出所有需要保留的对象。
[0019] 其中,该属性串由连接符串联该所有属性的内容组成。
[0020] 其中,步骤10包括:
[0021] 读取匹配规则的记录文件;
[0022] 获取每个规则包含的属性列。
[0023] 其中,步骤20包括:
[0024]Spark系统读取源文件;
[0025] 解析源文件中的记录数据,以分割符对每行数据进行拆分。
[0026] 其中,该匹配规则包括:
[0027] 匹配规则的数据格式包括规则id及待比较的属性列的列表;
[0028] 该匹配规则的含义为,对于任意两条记录,如果待比较的属性都不为空且相等,则 称该两条记录匹配规则成功。
[0029] 其中,对于多条匹配规则,任意两条记录满足任一条规则即称该两条记录匹配规 则成功。
[0030] 其中,如果第一规则判定第一记录和第二记录为同一对象,第二规则判定该第二 记录和第三记录为同一对象,则该第一记录、第二记录和第三记录为同一对象。
[0031] 综上所述,本发明通过采用大规模并行的策略,解决了面对海量数据的匹配效率 问题;通过预定义的匹配规则,规避了数据缺少与错误的问题。
【附图说明】
[0032] 图1为本发明基于Spark系统的大规模对象识别方法一较佳实施例的流程图。
【具体实施方式】
[0033] 下面结合附图,通过对本发明的【具体实施方式】详细描述,将使本发明的技术方案 及其有益效果显而易见。
[0034] 针对数据缺少与错误的情况如何识别同一对象的问题,本发明预先制定出几个关 键的匹配规则,当两个消费者记录信息满足某一匹配规则时就认为他们是同一消费者,例 如,本发明可设定消费者姓名与电话号码相同时就可认为是同一消费者,通过这个方法可 以很好的规避数据缺少与错误的问题。为了解决面对海量的数据的匹配效率问题,本发明 采用大规模并行的策略,利用多台机器并行处理,具体采用了基于内存计算Spark系统并 行处理策略来解决这个问题,处理对象识别比Hadoop框架更快速。
[0035] 下面详细介绍本发明的处理细节。
[0036] ?概念定义
[0037] 不失一般性,本发明一较佳实施例使用如下通用的对象描述数据格式:
[0038]
【主权项】
1. 一种基于Spark系统的大规模对象识别方法,其特征在于,包括: 步骤10、读取并解析所有匹配规则; 步骤20、读取并解析作为对象描述数据的记录; 步骤30、对于每个匹配规则,如果记录具有该匹配规则所需的所有属性,匹配结果为该 记录的该所有属性的内容所组成的属性串W及该记录的记录id ; 步骤40、将相同属性串对应的记录id聚集在一起成为记录id的集合,W该记录id的 集合标识同一对象; 步骤50、对每个对象所具有的记录id广播其所属的对象,对于同一记录id所对应的对 象进行传递闭包处理得到新的对象; 步骤60、反复进行步骤50,直至对象的数量没有改变。
2. 根据权利要求1所述的基于Spark系统的大规模对象识别方法,其特征在于,步骤 30还包括:如果记录不匹配任一匹配规则,匹配结果包括特殊值和该记录的记录id。
3. 根据权利要求1所述的基于Spark系统的大规模对象识别方法,其特征在于,步骤 50包括; 步骤501、对每个对象所具有的记录id广播其所属的对象; 步骤502、收集每个记录id所属的对象,如果记录id所属的对象只有一个,则标记对应 的对象的状态为保留;否则合并所有对象中的记录id并去重,生成新的对象并标记该新的 对象的状态为新增,标记每个旧的对象的状态为删除; 步骤503、合并每个对象的状态信息,如果状态内包含新增,此对象需保留;如果状态 内包含删除,此对象需删除;否则,此对象需保留; 步骤504、输出所有需要保留的对象。
4. 根据权利要求1所述的基于Spark系统的大规模对象识别方法,其特征在于,该属性 串由连接符串联该所有属性的内容组成。
5. 根据权利要求1所述的基于Spark系统的大规模对象识别方法,其特征在于,步骤 10包括: 读取匹配规则的记录文件; 获取每个规则包含的属性列。
6. 根据权利要求1所述的基于Spark系统的大规模对象识别方法,其特征在于,步骤 20包括; Spark系统读取源文件; 解析源文件中的记录数据,W分割符对每行数据进行拆分。
7. 根据权利要求1所述的基于Spark系统的大规模对象识别方法,其特征在于,该匹配 规则包括: 匹配规则的数据格式包括规则id及待比较的属性列的列表; 该匹配规则的含义为,对于任意两条记录,如果待比较的属性都不为空且相等,则称该 两条记录匹配规则成功。
8. 根据权利要求1所述的基于Spark系统的大规模对象识别方法,其特征在于,对于多 条匹配规则,任意两条记录满足任一条规则即称该两条记录匹配规则成功。
9. 根据权利要求1所述的基于Spark系统的大规模对象识别方法,其特征在于,如果第 一规则判定第一记录和第二记录为同一对象,第二规则判定该第二记录和第=记录为同一 对象,则该第一记录、第二记录和第S记录为同一对象。
【专利摘要】本发明涉及一种基于Spark系统的大规模对象识别方法。该方法包括:步骤10、读取并解析所有匹配规则;步骤20、读取并解析作为对象描述数据的记录;步骤30、对于每个匹配规则,如果记录具有该匹配规则所需的所有属性,匹配结果为该记录的该所有属性的内容所组成的属性串以及该记录的记录id;步骤40、将相同属性串对应的记录id聚集在一起成为记录id的集合;步骤50、对每个对象所具有的记录id广播其所属的对象,对于同一记录id所对应的对象进行传递闭包处理得到新的对象;步骤60、反复进行步骤50,直至对象的数量没有改变。发明采用大规模并行的策略,解决了面对海量数据的匹配效率问题;通过预定义的匹配规则,规避了数据缺少与错误的问题。
【IPC分类】G06F17-30
【公开号】CN104573098
【申请号】CN201510047803
【发明人】王明兴, 吴颖徽, 马帅, 汤南, 贾西贝
【申请人】深圳市华傲数据技术有限公司
【公开日】2015年4月29日
【申请日】2015年1月30日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1