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

技术编号:11371574 阅读:97 留言:0更新日期:2015-04-30 04:56
本发明专利技术涉及一种基于Spark系统的大规模对象识别方法。该方法包括:步骤10、读取并解析所有匹配规则;步骤20、读取并解析作为对象描述数据的记录;步骤30、对于每个匹配规则,如果记录具有该匹配规则所需的所有属性,匹配结果为该记录的该所有属性的内容所组成的属性串以及该记录的记录id;步骤40、将相同属性串对应的记录id聚集在一起成为记录id的集合;步骤50、对每个对象所具有的记录id广播其所属的对象,对于同一记录id所对应的对象进行传递闭包处理得到新的对象;步骤60、反复进行步骤50,直至对象的数量没有改变。本发明专利技术采用大规模并行的策略,解决了面对海量数据的匹配效率问题;通过预定义的匹配规则,规避了数据缺少与错误的问题。

【技术实现步骤摘要】
基于Spark系统的大规模对象识别方法
本专利技术涉及数据处理
,尤其涉及一种基于Spark系统的大规模对象识别方法。
技术介绍
网络技术飞速发展的今天,大量网络应用和产品的使用产生了海量的数据,当我们需要对数据进行清洗、集成时,就需要识别出这些数据中哪些记录是描述同一现实对象的。举个例子:各个电商销售商品时通常会记录消费者本身的信息(姓名、性别、年龄、电话、邮箱、住址等)以及商品的信息(如商品名称、类别、单价、数量等),当需要分析消费者的消费行为时,首要的事情时根据记录中消费者的信息来识别哪些记录是隶属于同一现实消费者,而通常不同的电商记录的消费者信息内容会有所不同,或者同一现实消费者在各电商网站注册的信息有差异,部分数据会缺少甚至错误,因此不能通过简单的去重来识别同一消费者。对象识别又称记录匹配,其目的是从(不可靠的)各种数据源中识别出表示同一现实对象的记录。对象识别在数据清洗、数据集成、数据分析等应用中具有重要作用。在实际应用中,一个对象的信息通常需要与其他数据源的信息进行关联。然而,其他数据源中表示同一对象的信息可能存在错误或具有不同的表示形式。因此,对象识别并不简单,特别是在互联网技术的迅猛发展的今天,数据在急剧膨胀,采用传统的方法从海量数据中识别出哪些对象是相同(或相似的)几乎不可行,相关问题亟需解决。其中包含两个关键问题:一是针对数据缺少与错误的情况如何识别同一对象;二是面对海量的数据如何解决匹配效率问题,传统的策略面对海量数据时已无能为力。另一方面,Spark系统是一个开源的通用并行分布式计算框架,由加州大学伯克利分校的AMP实验室开发,适合各种迭代算法和交互式数据分析,能够提升大数据处理的实时性和准确性,现已逐渐获得很多企业的支持。Spark是一种与Hadoop相似的开源集群计算环境,但是Spark启用了内存分布数据集,中间输出结果可以保存在内存中,从而不再需要读写HDFS,缩短访问延迟,除了能够提供交互式查询外,还可以优化迭代工作负载。因此Spark系统能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。
技术实现思路
本专利技术的目的在于提供一种基于Spark系统的大规模对象识别方法,能够提高面对海量数据的匹配效率。为实现上述目的,本专利技术提供一种基于Spark系统的大规模对象识别方法,包括:步骤10、读取并解析所有匹配规则;步骤20、读取并解析作为对象描述数据的记录;步骤30、对于每个匹配规则,如果记录具有该匹配规则所需的所有属性,匹配结果为该记录的该所有属性的内容所组成的属性串以及该记录的记录id;步骤40、将相同属性串对应的记录id聚集在一起成为记录id的集合,以该记录id的集合标识同一对象;步骤50、对每个对象所具有的记录id广播其所属的对象,对于同一记录id所对应的对象进行传递闭包处理得到新的对象;步骤60、反复进行步骤50,直至对象的数量没有改变。其中,步骤30还包括:如果记录不匹配任一匹配规则,匹配结果包括特殊值和该记录的记录id。其中,步骤50包括:步骤501、对每个对象所具有的记录id广播其所属的对象;步骤502、收集每个记录id所属的对象,如果记录id所属的对象只有一个,则标记对应的对象的状态为保留;否则合并所有对象中的记录id并去重,生成新的对象并标记该新的对象的状态为新增,标记每个旧的对象的状态为删除;步骤503、合并每个对象的状态信息,如果状态内包含新增,此对象需保留;如果状态内包含删除,此对象需删除;否则,此对象需保留;步骤504、输出所有需要保留的对象。其中,该属性串由连接符串联该所有属性的内容组成。其中,步骤10包括:读取匹配规则的记录文件;获取每个规则包含的属性列。其中,步骤20包括:Spark系统读取源文件;解析源文件中的记录数据,以分割符对每行数据进行拆分。其中,该匹配规则包括:匹配规则的数据格式包括规则id及待比较的属性列的列表;该匹配规则的含义为,对于任意两条记录,如果待比较的属性都不为空且相等,则称该两条记录匹配规则成功。其中,对于多条匹配规则,任意两条记录满足任一条规则即称该两条记录匹配规则成功。其中,如果第一规则判定第一记录和第二记录为同一对象,第二规则判定该第二记录和第三记录为同一对象,则该第一记录、第二记录和第三记录为同一对象。综上所述,本专利技术通过采用大规模并行的策略,解决了面对海量数据的匹配效率问题;通过预定义的匹配规则,规避了数据缺少与错误的问题。附图说明图1为本专利技术基于Spark系统的大规模对象识别方法一较佳实施例的流程图。具体实施方式下面结合附图,通过对本专利技术的具体实施方式详细描述,将使本专利技术的技术方案及其有益效果显而易见。针对数据缺少与错误的情况如何识别同一对象的问题,本专利技术预先制定出几个关键的匹配规则,当两个消费者记录信息满足某一匹配规则时就认为他们是同一消费者,例如,本专利技术可设定消费者姓名与电话号码相同时就可认为是同一消费者,通过这个方法可以很好的规避数据缺少与错误的问题。为了解决面对海量的数据的匹配效率问题,本专利技术采用大规模并行的策略,利用多台机器并行处理,具体采用了基于内存计算Spark系统并行处理策略来解决这个问题,处理对象识别比Hadoop框架更快速。下面详细介绍本专利技术的处理细节。●概念定义不失一般性,本专利技术一较佳实施例使用如下通用的对象描述数据格式:id姓名性别就职企业…1王明兴男华傲数据记录——本专利技术中称一行对象描述数据为一条记录,其中数据第一列“id”为记录的唯一标识,第二列以及随后的列为描述记录的属性。对象——本专利技术中称现实中相同的实体为对象。例如,同一消费者、同一某物品等。一个对象可能存在多条记录信息,也可能只存在一条。例如,某一消费者在不同的电商网站都有消费记录,则会存在多条记录信息;如果只在某一网站有消费,则只会有一条记录信息。匹配规则——本专利技术一较佳实施例中定义配规则如下:规则id:待比较的属性列的列表。例如:rule1:2,3。该规则的含义为:任意两条记录r1和r2,如果第二、第三列的属性都不为空且两条记录之间相等,则称记录r1、r2匹配规则成功,即记录r1、r2为同一对象。对于多条匹配规则,只要记录r1和r2满足任一条规则即称匹配规则成功。记录匹配的传递性——如果规则a判定记录r1和r2为同一对象,规则b判定记录r2和r3为同一对象,则有记录r1、r2、r3为同一对象。●制定匹配规则对象识别的准备工作为针对不同的业务数据、不同的需求制定合理的匹配规则,例如针对上面消费者的例子,本专利技术可预先制定如下规则(假设数据中第2列内容为姓名,第3列为电话,第4列为邮箱):rule1:2,3rule2:2,4rule3:3,4即如果两个消费者姓名和电话相同,或者姓名和邮箱相同,或者电话和邮箱相同即认为这两个消费者为同一消费者。下面结合图1所示的本专利技术基于Spark系统的大规模对象识别方法一较佳实施例的流程图及伪代码,具体举例说明本专利技术的详细步骤。●识别同一对象制定好匹配规则后,下一步就是利用规则来识别同一对象。本专利技术采用基于内存计算Spark系统并行处理策略来应付海量数据。步骤10、读取并解析所有匹配规则。本专利技术首先处理匹配规则。先读取匹配规则文件并解析,处理过程如下:a.读取本文档来自技高网
...
基于Spark系统的大规模对象识别方法

【技术保护点】
一种基于Spark系统的大规模对象识别方法,其特征在于,包括:步骤10、读取并解析所有匹配规则;步骤20、读取并解析作为对象描述数据的记录;步骤30、对于每个匹配规则,如果记录具有该匹配规则所需的所有属性,匹配结果为该记录的该所有属性的内容所组成的属性串以及该记录的记录id;步骤40、将相同属性串对应的记录id聚集在一起成为记录id的集合,以该记录id的集合标识同一对象;步骤50、对每个对象所具有的记录id广播其所属的对象,对于同一记录id所对应的对象进行传递闭包处理得到新的对象;步骤60、反复进行步骤50,直至对象的数量没有改变。

【技术特征摘要】
1.一种基于Spark系统的大规模对象识别方法,其特征在于,包括:步骤10、读取并解析所有匹配规则;步骤20、读取并解析作为对象描述数据的记录;步骤30、对于每个匹配规则,如果记录具有该匹配规则所需的所有属性,匹配结果为该记录的该所有属性的内容所组成的属性串以及该记录的记录id;步骤40、将相同属性串对应的记录id聚集在一起成为记录id的集合,以该记录id的集合标识同一对象;步骤50、对每个对象所具有的记录id广播其所属的对象,对于同一记录id所对应的对象进行传递闭包处理得到新的对象;步骤60、反复进行步骤50,直至对象的数量没有改变;其中,所述步骤50包括:步骤501、对每个对象所具有的记录id广播其所属的对象;步骤502、收集每个记录id所属的对象,如果记录id所属的对象只有一个,则标记对应的对象的状态为保留;否则合并所有对象中的记录id并去重,生成新的对象并标记该新的对象的状态为新增,标记每个旧的对象的状态为删除;步骤503、合并每个对象的状态信息,如果状态内包含新增,此对象需保留;如果状态内包含删除,此对象需删除;否则,此对象需保留;步骤504、输出所有需要保留的对象。2.根据权利要求1所述的基于Spark系统的大规模对象识别方法,其特征在于,步骤30还包括:如果...

【专利技术属性】
技术研发人员:王明兴吴颖徽马帅汤南贾西贝
申请(专利权)人:深圳市华傲数据技术有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1