CN110069460A - 数据去重方法及装置 - Google Patents

数据去重方法及装置 Download PDF

Info

Publication number
CN110069460A
CN110069460A CN201710929827.4A CN201710929827A CN110069460A CN 110069460 A CN110069460 A CN 110069460A CN 201710929827 A CN201710929827 A CN 201710929827A CN 110069460 A CN110069460 A CN 110069460A
Authority
CN
China
Prior art keywords
file
data
pointer
string data
sequence position
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.)
Pending
Application number
CN201710929827.4A
Other languages
English (en)
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.)
Beijing Gridsum Technology Co Ltd
Original Assignee
Beijing Gridsum Technology Co Ltd
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 Beijing Gridsum Technology Co Ltd filed Critical Beijing Gridsum Technology Co Ltd
Priority to CN201710929827.4A priority Critical patent/CN110069460A/zh
Publication of CN110069460A publication Critical patent/CN110069460A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1748De-duplication implemented within the file system, e.g. based on file segments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90344Query processing by using string matching techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种数据去重方法及装置。其中,该方法包括:根据预设排序条件,对第一文件和第二文件中的多条数据分别进行排序,其中,第一文件和第二文件中设置有对应的指针,指针用于指示文件中每条数据所在行的排序位;根据排序结果,判断第一字符串数据与第二字符串数据是否相同;若判断出第一字符串数据与第二字符串数据相同,记录相同的字符串数据在对应文件中的位置信息;根据记录的位置信息,对第一文件和第二文件中相同的字符串数据进行去重处理。本发明解决了相关技术中对于数据量较大的文件,在匹配重复数据时,效率较低的技术问题。

Description

数据去重方法及装置
技术领域
本发明涉及互联网技术领域,具体而言,涉及一种数据去重方法及装置。
背景技术
相关技术中,在网页的数据采集和处理环节,往往需要将重复的数据过滤掉,从而获取到干净的没有重复的数据,以用于后续的文件处理,当前的数据过滤技术中,一般是将单个文件中的每条数据和另外的一个文件中的每条数据进行匹配,从而查询到该条数据在另外的文件中是否有重复的数据,或者通过专门的过滤器将数据中常见的数据进行匹配以得到重复数据。但是上述的方式中,对于数据量较大的文件,若每条数据和另外文件中的数据进行逐条匹配,速度会很慢,而且效率非常低,而对于专设的过滤器进行匹配的方式,其准确度会下降,会漏掉文件中异常数据,导致数据重复过滤的精确度会降低。
针对上述的相关技术中对于数据量较大的文件,在匹配重复数据时,效率较低的技术问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种数据去重方法及装置,以至少解决相关技术中对于数据量较大的文件,在匹配重复数据时,效率较低的技术问题。
根据本发明实施例的一个方面,提供了一种数据去重方法,包括:根据预设排序条件,对第一文件和第二文件中的多条数据分别进行排序,其中,所述第一文件和第二文件中设置有对应的指针,所述指针用于指示文件中每条数据所在行的排序位,所述第一文件的指针指示的字符串数据对应为第一字符串数据,所述第二文件的指针指示的字符串数据为第二字符串数据,所述第一文件中的数据量大于所述第二文件中的数据量;根据排序结果,判断所述第一字符串数据与所述第二字符串数据是否相同;若判断出所述第一字符串数据与所述第二字符串数据相同,记录相同的字符串数据在对应文件中的位置信息;根据记录的位置信息,对所述第一文件和第二文件中相同的字符串数据进行去重处理。
进一步地,在判断所述第一字符串数据与所述第二字符串数据是否相同之后,所述方法还包括:若判断出所述第一字符串数据与所述第二字符串数据不相同,则判断所述第一文件的指针指示的排序位是否大于所述第二文件的指针指示的排序位;若判断出所述第一文件的指针指示的排序位大于所述第二文件的指针指示的排序位,将所述第二文件的指针指示的排序位增加第一预设数值。
进一步地,在判断所述第一文件的指针指示的排序位是否大于所述第二文件的指针指示的排序位之后,所述方法还包括:若判断出所述第一文件的指针指示的排序位小于所述第二文件的指针指示的排序位,则将所述第一文件的指针指示的排序位增加第二预设数值。
进一步地,在判断出所述第一字符串数据与所述第二字符串数据相同,记录相同的字符串数据在对应文件中的位置之后,所述方法还包括:将所述第一文件的指针指示的排序位和所述第二文件的指针指示的排序位同时增加第三预设数值。
进一步地,所述方法还包括:在判断出所述第二文件的指针指示的排序位大于等于所述第二文件的数据的总行数的情况下,判断所述第一文件的当前指针指示的排序位是否小于所述第一文件的数据的总行数;若判断出所述第一文件的当前指针指示的排序位小于所述第一文件的数据的总行数的情况下,获取剩余数据行,其中,所述剩余数据行是所述第一文件的当前指针指示的排序位对应的数据行至所述第一文件的最后数据行之间的数据行;将所述剩余数据行指示的数据确定为所述第一文件和所述第二文件中非重复的数据。
根据本发明实施例的另一方面,还提供了一种数据去重装置,包括:排序单元,用于根据预设排序条件,对第一文件和第二文件中的多条数据分别进行排序,其中,所述第一文件和第二文件中设置有对应的指针,所述指针用于指示文件中每条数据所在行的排序位,所述第一文件的指针指示的字符串数据对应为第一字符串数据,所述第二文件的指针指示的字符串数据为第二字符串数据,所述第一文件中的数据量大于所述第二文件中的数据量;判断单元,用于根据排序结果,判断所述第一字符串数据与所述第二字符串数据是否相同;记录单元,用于若判断出所述第一字符串数据与所述第二字符串数据相同,记录相同的字符串数据在对应文件中的位置信息;去重单元,用于根据记录的位置信息,对所述第一文件和第二文件中相同的字符串数据进行去重处理。
进一步地,所述装置还包括:判断模块,用于在判断所述第一字符串数据与所述第二字符串数据是否相同之后,若判断出所述第一字符串数据与所述第二字符串数据不相同,则判断所述第一文件的指针指示的排序位是否大于所述第二文件的指针指示的排序位;第一增加模块,用于若判断出所述第一文件的指针指示的排序位大于所述第二文件的指针指示的排序位,则将所述第二文件的指针指示的排序位增加第一预设数值。
进一步地,所述装置还包括:第二增加模块,用于在判断所述第一文件的指针指示的排序位是否大于所述第二文件的指针指示的排序位之后,若判断出所述第一文件的指针指示的排序位小于所述第二文件的指针指示的排序位,则将所述第一文件的指针指示的排序位增加第二预设数值。
根据本发明实施例的另一方面,还提供了一种存储介质,其上存储有程序,所述程序执行上述任一项所述的数据去重方法。
根据本发明实施例的另一方面,还提供了一种处理器,所述处理器用于运行程序,所述程序运行时执行上述任一项所述的数据去重方法。
在本发明实施例中,可以根据预设排序条件,对第一文件和第二文件中的多条数据分别进行排序,其中,第一文件和第二文件中设置有对应的指针,指针用于指示文件中每条数据所在行的排序位,第一文件的指针指示的字符串数据对应为第一字符串数据,第二文件的指针指示的字符串数据为第二字符串数据,根据排序结果,判断第一字符串数据与第二字符串数据是否相同,在判断出第一字符串数据与第二字符串数据相同的情况下,记录相同的字符串数据在对应文件中的位置信息,最后可以根据记录的位置信息,对第一文件和第二文件中相同的字符串数据进行去重处理。在该实施例中,可以先对文件中的数据进行排序,从而可以利用指针指示第一文件和第二文件的排序位,通过比较文件的指针指示的排序位对应的字符串数据是否相同,确定字符串数据是否相同,通过对文件中的字符串数据进行排序,在排序后,重复的字符串数据在每个文件中的排序位大致相同,会很快确定出两个文件中的字符串数据是否相同,无需第一文件中的每条数据和第二文件中的每条数据进行比对,明显减少了去重时的工作量,提高去重效率,进而解决相关技术中对于数据量较大的文件,在匹配重复数据时,效率较低的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的数据去重方法的流程图;
图2是根据本发明实施例的数据去重装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了更好的对本发明进行说明,下面对本发明实施例中出现的部分术语或名词进行解释:
URL,统一资源定位符,是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该如何处理。
根据本发明实施例,提供了一种数据去重的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本发明实施例可以应用于包含多条数据的文件比较方案中,可以比较字符串或者数据的大小,对文件中出现重复的数据进行去重处理,将文件中未出现重复的数据提取出来,从而在下次使用该未出现重复的数据。本发明实施例中的文件中的数据可以包括网民访问网站或者视频、APP等内容而记录的日志数据,也可以是记录的网民发出访问时统计的URL数据。本申请中记录数据的文件可以是多个文件,每个文件中记录的数据的数量可以是不同的,对于文件中记录的具体内容,可以存在相同的部分,也可以存在不同的部分,本申请中对于文件中记载的内容的类型不做限制,例如,文件中记录具体数据或者字符串或者URL中掺杂的字符串和其他数字等内容。本申请中以两个文件做出说明,将两个文件确定为第一文件和第二文件,其中,第一文件中包括的数据量可以大于第二文件中数据量。
下面以优选的实施步骤对本发明做出说明,图1是根据本发明实施例的数据去重方法的流程图,如图1所示,该方法包括如下步骤:
步骤S102,根据预设排序条件,对第一文件和第二文件中的多条数据分别进行排序,其中,第一文件和第二文件中设置有对应的指针,指针用于指示文件中每条数据所在行的排序位,第一文件的指针指示的字符串数据对应为第一字符串数据,第二文件的指针指示的字符串数据为第二字符串数据,第一文件中的数据量大于第二文件中的数据量。
其中,上述的预设排序条件可以包括多种排序条件,例如,正向排序条件、反向排序条件、冒泡排序条件。本发明实施例中以正向排序条件为例,该正向排序条件可以是指在确定排序范围后将数据按照大小或者字符串按照长短来进行排序。
另外,上述的第一文件和第二文件都可以存储大量的数据,该数据可以为网民访问数据中的URL数据。第一文件和第二文件中存储的数据中可以包括重复的数据,也可以包括部分不重复的数据,在执行去重操作之前,可以先将第一文件和第二文件中多条数据进行排序,在排序后,得到的数据中具备相同或相似的数据可以在两个文件中相同行,或者同一行的前后,这样可以两个文件中的字符串数据是否相同,来确定数据是否出现重复。并且,对于URL数据而言,在经过排序后,两个文件中的数据的排序方式相同,会让相同的字符串数据在对应文件夹中的排序位的位置大致相同,若两个文件中有重复的数据,则会将统一数据的排序在相邻位置,这样在比较第一文件和第二文件中对应的指针指示的排序位对应的字符串数据是否相同后,可以确定其是否相同,并不断通过指针指示的排序位来比较排序位对应的数据。该第一文件的指针指示的排序位和第二文件的指针指示的排序位,由于排序相同,其指示的位置大致相同,例如,第一文件有100条数据,指针开始指示的排序位为1,则指针指示的数据为第一文件的第一行的字符串数据,而第二文件的指针指示的位置也会相同。
在根据预设排序条件,对第一文件和第二文件中的多条数据分别进行排序之前,该实施例还包括:获取第一文件和第二文件中的多条数据;根据预设排序条件和每条数据的字符串长度,对第一文件和第二文件中的数据进行排序。其中,预设排序条件也可以是上述的排序条件,如正向排序。其中,数据中的字符串长度,可以是指数据的整体长度,以根据数据的长度进行排序。
步骤S104,根据排序结果,判断第一字符串数据与第二字符串数据是否相同。
其中,本发明实施例中采用指针指示文件的数据行所在的位置,指针可以移动,本申请中的指针可以为程序中设置的指针。其中,在对文件中的数据进行排序后,可以在第一文件和第二文件中各设置一个指针,并且可以将指针预设指向第一文件和第二文件的第一行或者最后一行,指针的初始计数可以为1,该指针可以不断指向不同的文件的数据行。
上述判断字符串数据是否相同,可以直接比较第一文件的字符串数据和第二文件的字符串数据是否相同,例如,第一文件的第三行字符串数据为“1a1a2c”,第二文件的第四行字符串数据为“1a1a2c”,则在比较第一文件的指针指示第三行和第二文件的指针指示第四行,则确定比较结果相同。
可选的,在获取第一文件的指针指示的行和第二文件的指针指示的行之前,方法还包括:判断第一文件的指针所在的排序位是否低于第一文件的数据的总行数;根据判断结果,确定是否获取第一文件的指针所指示的排序位对应的字符串数据。并且,在获取第一文件的指针指示的排序位对应的字符串数据和第二文件的指针指示的排序位对应的字符串数据之前,还可以判断第二文件的指针所在的排序位是否低于第二文件的数据的总行数;根据判断结果,确定是否获取第二文件的指针所指示的排序位对应的字符串数据。
即在获取第一文件的指针指示的排序位和第二文件的指针指示的排序位之前,需要判断当前指针是否执排序位完成,确定第一文件的指针指示的排序位小于第一文件的数据的总排序位数。并且,在判断时,也需要判断第二文件中的指针指示的排序位是否低于第二文件的总排序位数,只有在第二文件中指针指示的排序位低于第二文件的总排序位数时,才能继续比较字符串是否相同。例如,第一文件的数据的总排序位数为500,第二文件的数据总排序位数为450,则第一文件的指针指示的排序位需要低于等于500,而第二文件的指针指示的排序位需要低于等于450,在任何一个文件的指针指示的排序位大于对应的总排序位数时,判断步骤结束,并判断另一个文件是否存在剩余的字符串数据。
步骤S106,若判断出第一字符串数据与第二字符串数据相同,记录相同的字符串数据在对应文件中的位置信息。
其中,上述的位置信息可以是指字符串数据在对应文件中指针指示的排序位,并通过该排序位指示文件中对应的字符串数据的位置。出现相同字符串数据的位置记录下来,确定文件中字符串数据的排序位的具体大小。
上述步骤中,在判断第一字符串数据与第二字符串数据是否相同之后,还包括:若判断出第一字符串数据与第二字符串数据不相同,则判断第一文件的指针指示的排序位是否大于第二文件的指针指示的排序位;若判断出第一文件的指针指示的排序位大于第二文件的指针指示的排序位,将第二文件的指针指示的排序位增加第一预设数值。
即在确定出第一文件中的第一字符串数据和第二文件中的第二字符串数据不相同的情况,对于第一文件的指针指示的排序位大于第二文件的指针指示的排序位的情况,将第二文件的指针指示的排序位增加第一预设数值,以进行进一步地比较。如第一文件的指针的排序位为23,第二文件的指针指示的排序位为21,在比较第一文件的指针的排序位为23指示的字符串数据和第二文件的指针指示的排序位为21指示的字符串数据不相同的情况下,由于23大于21,所以增加第二文件的排序位,若第一预设数值为1,则增加后,第二文件的指针指示的排序位为22,可以进一步比较指针对应的字符串数据是否相同。
在判断第一文件的指针指示的排序位是否大于第二文件的指针指示的排序位之后,还包括:若判断出第一文件的指针指示的排序位小于第二文件的指针指示的排序位,则将第一文件的指针指示的排序位增加第二预设数值。
该方式与上述的方式是相同的,在比较第一文件的指针指示的排序位小于第二文件的指针指示的排序位的情况下,将第一文件的指针指示的排序位增加第二预设数值。该第二预设数值也可以为1。
上述在判断出第一字符串数据与第二字符串数据相同,记录相同的字符串数据在对应文件中的位置之后,还可以包括:将第一文件的指针指示的排序位和第二文件的指针指示的排序位同时增加第三预设数值。
即在确定第一文件中的指针指示的第一字符串数据与第二文件的指针指示的第二字符串数据的相同的情况下,将第一文件的指针指示的排序位和第二文件的指针指示的排序位同时增加第三预设数值。由于第一文件中的指针指示的第一字符串数据与第二文件的指针指示的第二字符串数据相同,需要对当前第一文件的指针对应的排序位指示的第一字符串数据和第二文件指针对应的排序位指示的第二字符串数据进行去重处理,在去重处理后,需要将两个文件的指针指示的排序位都增加相同的数值,例如,第三预设数值为1,在增加指针的相同的数值的排序位后,可以进一步比较对应的排序位的字符串数据是否相同。
其中,上述第一预设数值、第二预设数值、第三预设数值都可以相同,也可以不同,对于相同的情况,例如,第一预设数值、第二预设数值、第三预设数值都可以设置为1;对于不同的情况,例如,设置第一预设数值为1、第二预设数值为2、第三预设数值为3。
步骤S108,根据记录的位置信息,对第一文件和第二文件中相同的字符串数据进行去重处理。
本发明实施例中在进行去重处理时,可以将重复的数据删除,以留下两个文件中非重复的数据,从而下次利用该非重复的数据。通过记录的位置信息,确定将相同的字符串数据去重,以留下非重复数据。
通过上述步骤,可以根据预设排序条件,对第一文件和第二文件中的多条数据分别进行排序,其中,第一文件和第二文件中设置有对应的指针,指针用于指示文件中每条数据所在行的排序位,第一文件的指针指示的字符串数据对应为第一字符串数据,第二文件的指针指示的字符串数据为第二字符串数据,根据排序结果,判断第一字符串数据与第二字符串数据是否相同,在判断出第一字符串数据与第二字符串数据相同的情况下,记录相同的字符串数据在对应文件中的位置信息,最后可以根据记录的位置信息,对第一文件和第二文件中相同的字符串数据进行去重处理。在该实施例中,可以先对文件中的数据进行排序,从而可以利用指针指示第一文件和第二文件的排序位,通过比较文件的指针指示的排序位对应的字符串数据是否相同,确定字符串数据是否相同,通过对文件中的字符串数据进行排序,在排序后,重复的字符串数据在每个文件中的排序位大致相同,会很快确定出两个文件中的字符串数据是否相同,无需第一文件中的每条数据和第二文件中的每条数据进行比对,明显减少了去重时的工作量,提高去重效率,进而解决相关技术中对于数据量较大的文件,在匹配重复数据时,效率较低的技术问题。
上述的实施方式可以应用于存储数据量较大文件去重处理中,在处理大量级数据文件时,可以利用预设排序条件对数据进行排序,并进行文件之间的指针所指示的排序位指示的字符串数据之间的比较,根据比较结果,确定字符串数据中是否出现重复数据,该实施方式可以明显提高去重效率,而且准确率较高。
对于上述实施,还可以包括:在判断出第二文件的指针指示的排序位大于等于第二文件的数据的总行数的情况下,判断第一文件的当前指针指示的排序位是否小于第一文件的数据的总行数;若判断出第一文件的当前指针指示的排序位小于第一文件的数据的总行数的情况下,获取剩余数据行,其中,剩余数据行是第一文件的当前指针指示的排序位对应的数据行至第一文件的最后数据行之间的数据行;将剩余数据行指示的数据确定为第一文件和第二文件中非重复的数据。
由于第一文件和第二文件的数据量不相同,本申请中以第一文件的数据量大于第二文件的数据量,对于第二文件的字符串数据全部比较完成后,可以将第一文件中剩余的数据都作为非重复数据。该非重复数据可以用于后续的数据操作。
在确定出当前第二文件中指针已经指向最后一行,此时,可以判断第一文件中的指针指示的排序位到达最后一行,若没有,则将第一文件的指针尚未指向的排序位所在行对应的字符串数据作为非重复数据,因为此时,第二文件中的字符串数据已经比较完,第一文件中的剩余行的数据可以确定为非重复数据,可以继续利用。
通过上述实施例,可以在文件中有大量数据的情况下,若需要对比两个文件并进行去重处理时,可以利用预设排序条件对文件中的数据进行排序,然后分别建立文件中指针,通过指针读取文件中的字符串数据,然后进行相应的比对。在文件中指针指示的排序位低于总行数的情况下,需要比较两个文件中的指针指示的字符串数据是否相同,以确定数据是否出现重复,从而更加快速和方便确定文件中的重复数据,明显提高了去重效率。
下面以另一种可选的实施方式对本发明做出说明。
本发明以URL数据为例,对两个存储URL数据的文件中数据进行去重处理,首先,需要分别处理两个要互相对比去重的文件,做字符串正向排序,这时需要保证两个文件都是同一算法进行过的排序即可。
然后进行排序去重。其中,步骤11:分别对两个文件建立一个初始计数为1的指针,指针的意义既代表要读取各自文件的行号,然后开始做如下对比工作:
循环条件:只要文件1的指针数<文件1的总行数,或文件2也同理,则不断进行以下循环:
将文件1指针所在行与文件2指针所在行,进行字符串正向排序(理论上要同步骤11使用同样的排序算法),然后进行如下条件的判断
条件1:如果文件1指针行排序位>文件2指针行排序位,则文件2指针加1(对应上述的预设数值),记录出现重复行。
条件2:如果文件1指针行排序位<文件2指针行排序位,则记录为出现不存在重复的一行,将此行存储在内存中用于后续打印,然后文件1的指针加1,记录出现不重复行。
条件3:如果文件1指针行的字符串=文件2指针行的字符串,则文件1的指针与文件2的指针都分别加1,记录出现重复行。
对于上述三个条件,因为条件是互斥的,所以每次循环只可能匹配到一个条件,直到不满足了“循环条件”后,进入步骤12。
步骤12:将步骤11中记录在内存中的全部“不重复行”,进行结果输出,另外,再输出文件1在步骤11退出时指针所在行到文件1最后一行的所有行。
通过步骤12,可以输出所有的不重复字符串数据(即不重复行),以得到文件1与文件2不互相重复的字符串数据。
通过上述实施例,可以有效降低对比工作中,重复整体读取两个文件的动作,消除了磁盘大量IO的瓶颈(每个文件均只遍历1次即可,而常规对比算法的遍历次数是文件行的数量,消耗时间会成倍增加),并且每一次的排序对比,均是精准对比,不会像布隆过滤器算法那样造成误差,提高了数据的去重效率。
图2是根据本发明实施例的数据去重装置的示意图,如图2所示,该装置可以包括:排序单元21,用于根据预设排序条件,对第一文件和第二文件中的多条数据分别进行排序,其中,第一文件和第二文件中设置有对应的指针,指针用于指示文件中每条数据所在行的排序位,第一文件的指针指示的字符串数据对应为第一字符串数据,第二文件的指针指示的字符串数据为第二字符串数据,第一文件中的数据量大于第二文件中的数据量;判断单元23,用于根据排序结果,判断第一字符串数据与第二字符串数据是否相同;记录单元25,用于若判断出第一字符串数据与第二字符串数据相同,记录相同的字符串数据在对应文件中的位置信息;去重单元27,用于根据记录的位置信息,对第一文件和第二文件中相同的字符串数据进行去重处理。
通过上述实施例,可以通过排序单元21根据预设排序条件,对第一文件和第二文件中的多条数据分别进行排序,其中,第一文件和第二文件中设置有对应的指针,指针用于指示文件中每条数据所在行的排序位,第一文件的指针指示的字符串数据对应为第一字符串数据,第二文件的指针指示的字符串数据为第二字符串数据,通过判断单元23根据排序结果,判断第一字符串数据与第二字符串数据是否相同,通过记录单元25在判断出第一字符串数据与第二字符串数据相同的情况下,记录相同的字符串数据在对应文件中的位置信息,最后可以通过去重单元27根据记录的位置信息,对第一文件和第二文件中相同的字符串数据进行去重处理。在该实施例中,可以先对文件中的数据进行排序,从而可以利用指针指示第一文件和第二文件的排序位,通过比较文件的指针指示的排序位对应的字符串数据是否相同,确定字符串数据是否相同,通过对文件中的字符串数据进行排序,在排序后,重复的字符串数据在每个文件中的排序位大致相同,会很快确定出两个文件中的字符串数据是否相同,无需第一文件中的每条数据和第二文件中的每条数据进行比对,明显减少了去重时的工作量,提高去重效率,进而解决相关技术中对于数据量较大的文件,在匹配重复数据时,效率较低的技术问题。
其中,上述数据去重装置还可以包括:判断模块,用于在判断第一字符串数据与第二字符串数据是否相同之后,若判断出第一字符串数据与第二字符串数据不相同,则判断第一文件的指针指示的排序位是否大于第二文件的指针指示的排序位;第一增加模块,用于若判断出第一文件的指针指示的排序位大于第二文件的指针指示的排序位,则将第二文件的指针指示的排序位增加第一预设数值。
另外,该装置还可以包括:第二增加模块,用于在判断第一文件的指针指示的排序位是否大于第二文件的指针指示的排序位之后,若判断出第一文件的指针指示的排序位小于第二文件的指针指示的排序位,则将第一文件的指针指示的排序位增加第二预设数值。
上述数据去重装置还可以包括处理器和存储器,上述排序单元21、判断单元23、记录单元25、去重单元27等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来对数据进行快速的去重处理。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
根据本发明实施例的另一方面,还提供了一种存储介质,其上存储有程序,程序执行上述任一项的数据去重方法。
根据本发明实施例的另一方面,还提供了一种处理器,处理器用于运行程序,程序运行时执行上述任一项的数据去重方法。
本发明实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:根据预设排序条件,对第一文件和第二文件中的多条数据分别进行排序,其中,第一文件和第二文件中设置有对应的指针,指针用于指示文件中每条数据所在行的排序位,第一文件的指针指示的字符串数据对应为第一字符串数据,第二文件的指针指示的字符串数据为第二字符串数据,第一文件中的数据量大于第二文件中的数据量;根据排序结果,判断第一字符串数据与第二字符串数据是否相同;若判断出第一字符串数据与第二字符串数据相同,记录相同的字符串数据在对应文件中的位置信息;根据记录的位置信息,对第一文件和第二文件中相同的字符串数据进行去重处理。
可选地,上述处理器执行程序时,还可以在判断出第一字符串数据与第二字符串数据不相同时,判断第一文件的指针指示的排序位是否大于第二文件的指针指示的排序位;若判断出第一文件的指针指示的排序位大于第二文件的指针指示的排序位,将第二文件的指针指示的排序位增加第一预设数值。
可选地,上述处理器执行程序时,还可以若判断出第一文件的指针指示的排序位小于第二文件的指针指示的排序位,则将第一文件的指针指示的排序位增加第二预设数值。
可选地,上述处理器执行程序时,还可以将第一文件的指针指示的排序位和第二文件的指针指示的排序位同时增加第三预设数值。
可选地,上述处理器执行程序时,还可以在判断出第二文件的指针指示的排序位大于等于第二文件的数据的总行数的情况下,判断第一文件的当前指针指示的排序位是否小于第一文件的数据的总行数;若判断出第一文件的当前指针指示的排序位小于第一文件的数据的总行数的情况下,获取剩余数据行,其中,剩余数据行是第一文件的当前指针指示的排序位对应的数据行至第一文件的最后数据行之间的数据行;将剩余数据行指示的数据确定为第一文件和第二文件中非重复的数据。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:根据预设排序条件,对第一文件和第二文件中的多条数据分别进行排序,其中,第一文件和第二文件中设置有对应的指针,指针用于指示文件中每条数据所在行的排序位,第一文件的指针指示的字符串数据对应为第一字符串数据,第二文件的指针指示的字符串数据为第二字符串数据,第一文件中的数据量大于第二文件中的数据量;根据排序结果,判断第一字符串数据与第二字符串数据是否相同;若判断出第一字符串数据与第二字符串数据相同,记录相同的字符串数据在对应文件中的位置信息;根据记录的位置信息,对第一文件和第二文件中相同的字符串数据进行去重处理。
可选地,上述计算机程序产品执行程序时,还可以在判断出第一字符串数据与第二字符串数据不相同时,判断第一文件的指针指示的排序位是否大于第二文件的指针指示的排序位;若判断出第一文件的指针指示的排序位大于第二文件的指针指示的排序位,将第二文件的指针指示的排序位增加第一预设数值。
可选地,上述计算机程序产品执行程序时,还可以在判断出第一文件的指针指示的排序位小于第二文件的指针指示的排序位时,则将第一文件的指针指示的排序位增加第二预设数值。
可选地,上述计算机程序产品执行程序时,还可以将第一文件的指针指示的排序位和第二文件的指针指示的排序位同时增加第三预设数值。
可选地,上述计算机程序产品执行程序时,还可以在判断出第二文件的指针指示的排序位大于等于第二文件的数据的总行数的情况下,判断第一文件的当前指针指示的排序位是否小于第一文件的数据的总行数;若判断出第一文件的当前指针指示的排序位小于第一文件的数据的总行数的情况下,获取剩余数据行,其中,剩余数据行是第一文件的当前指针指示的排序位对应的数据行至第一文件的最后数据行之间的数据行;将剩余数据行指示的数据确定为第一文件和第二文件中非重复的数据。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (10)

1.一种数据去重方法,其特征在于,包括:
根据预设排序条件,对第一文件和第二文件中的多条数据分别进行排序,其中,所述第一文件和第二文件中设置有对应的指针,所述指针用于指示文件中每条数据所在行的排序位,所述第一文件的指针指示的字符串数据对应为第一字符串数据,所述第二文件的指针指示的字符串数据为第二字符串数据,所述第一文件中的数据量大于所述第二文件中的数据量;
根据排序结果,判断所述第一字符串数据与所述第二字符串数据是否相同;
若判断出所述第一字符串数据与所述第二字符串数据相同,记录相同的字符串数据在对应文件中的位置信息;
根据记录的位置信息,对所述第一文件和第二文件中相同的字符串数据进行去重处理。
2.根据权利要求1所述的方法,其特征在于,在判断所述第一字符串数据与所述第二字符串数据是否相同之后,所述方法还包括:
若判断出所述第一字符串数据与所述第二字符串数据不相同,则判断所述第一文件的指针指示的排序位是否大于所述第二文件的指针指示的排序位;
若判断出所述第一文件的指针指示的排序位大于所述第二文件的指针指示的排序位,将所述第二文件的指针指示的排序位增加第一预设数值。
3.根据权利要求2所述的方法,其特征在于,在判断所述第一文件的指针指示的排序位是否大于所述第二文件的指针指示的排序位之后,所述方法还包括:
若判断出所述第一文件的指针指示的排序位小于所述第二文件的指针指示的排序位,则将所述第一文件的指针指示的排序位增加第二预设数值。
4.根据权利要求1所述的方法,其特征在于,在判断出所述第一字符串数据与所述第二字符串数据相同,记录相同的字符串数据在对应文件中的位置之后,所述方法还包括:
将所述第一文件的指针指示的排序位和所述第二文件的指针指示的排序位同时增加第三预设数值。
5.根据权利要求2所述的方法,其特征在于,所述方法还包括:
在判断出所述第二文件的指针指示的排序位大于等于所述第二文件的数据的总行数的情况下,判断所述第一文件的当前指针指示的排序位是否小于所述第一文件的数据的总行数;
若判断出所述第一文件的当前指针指示的排序位小于所述第一文件的数据的总行数的情况下,获取剩余数据行,其中,所述剩余数据行是所述第一文件的当前指针指示的排序位对应的数据行至所述第一文件的最后数据行之间的数据行;
将所述剩余数据行指示的数据确定为所述第一文件和所述第二文件中非重复的数据。
6.一种数据去重装置,其特征在于,包括:
排序单元,用于根据预设排序条件,对第一文件和第二文件中的多条数据分别进行排序,其中,所述第一文件和第二文件中设置有对应的指针,所述指针用于指示文件中每条数据所在行的排序位,所述第一文件的指针指示的字符串数据对应为第一字符串数据,所述第二文件的指针指示的字符串数据为第二字符串数据,所述第一文件中的数据量大于所述第二文件中的数据量;
判断单元,用于根据排序结果,判断所述第一字符串数据与所述第二字符串数据是否相同;
记录单元,用于若判断出所述第一字符串数据与所述第二字符串数据相同,记录相同的字符串数据在对应文件中的位置信息;
去重单元,用于根据记录的位置信息,对所述第一文件和第二文件中相同的字符串数据进行去重处理。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
判断模块,用于在判断所述第一字符串数据与所述第二字符串数据是否相同之后,若判断出所述第一字符串数据与所述第二字符串数据不相同,则判断所述第一文件的指针指示的排序位是否大于所述第二文件的指针指示的排序位;
第一增加模块,用于若判断出所述第一文件的指针指示的排序位大于所述第二文件的指针指示的排序位,则将所述第二文件的指针指示的排序位增加第一预设数值。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
第二增加模块,用于在判断所述第一文件的指针指示的排序位是否大于所述第二文件的指针指示的排序位之后,若判断出所述第一文件的指针指示的排序位小于所述第二文件的指针指示的排序位,则将所述第一文件的指针指示的排序位增加第二预设数值。
9.一种存储介质,其上存储有程序,其特征在于,所述程序执行权利要求1至5中任一项所述的数据去重方法。
10.一种处理器,所述处理器用于运行程序,其特征在于,所述程序运行时执行权利要求1至5中任一项所述的数据去重方法。
CN201710929827.4A 2017-09-30 2017-09-30 数据去重方法及装置 Pending CN110069460A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710929827.4A CN110069460A (zh) 2017-09-30 2017-09-30 数据去重方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710929827.4A CN110069460A (zh) 2017-09-30 2017-09-30 数据去重方法及装置

Publications (1)

Publication Number Publication Date
CN110069460A true CN110069460A (zh) 2019-07-30

Family

ID=67364371

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710929827.4A Pending CN110069460A (zh) 2017-09-30 2017-09-30 数据去重方法及装置

Country Status (1)

Country Link
CN (1) CN110069460A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111027282A (zh) * 2019-11-21 2020-04-17 精硕科技(北京)股份有限公司 文本去重方法和装置、电子设备及计算机可读存储介质
CN111639103A (zh) * 2020-06-02 2020-09-08 中国工商银行股份有限公司 业务数据处理方法、装置、计算机系统和介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111027282A (zh) * 2019-11-21 2020-04-17 精硕科技(北京)股份有限公司 文本去重方法和装置、电子设备及计算机可读存储介质
CN111639103A (zh) * 2020-06-02 2020-09-08 中国工商银行股份有限公司 业务数据处理方法、装置、计算机系统和介质
CN111639103B (zh) * 2020-06-02 2023-09-12 中国工商银行股份有限公司 业务数据处理方法、装置、计算机系统和介质

Similar Documents

Publication Publication Date Title
CN108595583A (zh) 动态图表类页面数据爬取方法、装置、终端及存储介质
CN104346462B (zh) 保存网页元素的方法、装置和浏览器客户端
EP2131290A1 (en) Method of displaying related keyword and system as the same
CN106886570A (zh) 页面处理方法及装置
CN107656968A (zh) 大批量业务数据导出方法及系统
CN106897350A (zh) 引导渐进搜索系统和方法
US20170053023A1 (en) System to organize search and display unstructured data
CN110413888A (zh) 一种书籍推荐方法及装置
CN108153719A (zh) 合并电子表格的方法和装置
CN110019669A (zh) 一种文本检索方法及装置
CN110069460A (zh) 数据去重方法及装置
CN103530386B (zh) 浏览器网页的编辑方法及浏览器
CN109819002B (zh) 数据推送方法和装置、存储介质及电子装置
CN107193467A (zh) 用于展示智能笔书写内容的方法及设备
CN106557556A (zh) 一种网页页面的展示方法、装置、服务器和系统
CN111310224B (zh) 日志脱敏方法、装置、计算机设备及计算机可读存储介质
CN105247481A (zh) 网页输出选择
CN110209780A (zh) 一种问题模板生成方法、装置、服务器及存储介质
CN102129454A (zh) 一种基于云存储的百科数据处理方法及系统
CN109117434A (zh) 裁判文书检索方法、装置、存储介质及处理器
CN111125543A (zh) 书籍推荐排序模型的训练方法、计算设备及存储介质
CN108763258A (zh) 文档主题参数提取方法、产品推荐方法、设备及存储介质
CN100587663C (zh) 数据提示装置以及数据提示方法
CN106782668B (zh) 一种测试内存读写极限速度的方法及装置
CN110046157A (zh) 基于十字双向链表存储有向图的方法及装置

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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 100083 No. 401, 4th Floor, Haitai Building, 229 North Fourth Ring Road, Haidian District, Beijing

Applicant after: Beijing Guoshuang Technology Co.,Ltd.

Address before: 100086 Beijing city Haidian District Shuangyushu Area No. 76 Zhichun Road cuigongfandian 8 layer A

Applicant before: Beijing Guoshuang Technology Co.,Ltd.

RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20190730