CN104408190A - 基于Spark的数据处理方法及装置 - Google Patents

基于Spark的数据处理方法及装置 Download PDF

Info

Publication number
CN104408190A
CN104408190A CN201410779342.8A CN201410779342A CN104408190A CN 104408190 A CN104408190 A CN 104408190A CN 201410779342 A CN201410779342 A CN 201410779342A CN 104408190 A CN104408190 A CN 104408190A
Authority
CN
China
Prior art keywords
data
signature identification
pending data
partition
assigned
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.)
Granted
Application number
CN201410779342.8A
Other languages
English (en)
Other versions
CN104408190B (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.)
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 CN201410779342.8A priority Critical patent/CN104408190B/zh
Publication of CN104408190A publication Critical patent/CN104408190A/zh
Application granted granted Critical
Publication of CN104408190B publication Critical patent/CN104408190B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/1737Details of further file system functions for reducing power consumption or coping with limited storage space, e.g. in mobile devices
    • 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/1734Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs

Landscapes

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

Abstract

本发明公开了一种基于Spark的数据处理方法及装置。其中,该方法包括:获取待处理数据;提取待处理数据的特征标识,其中,特征标识用于标识待处理数据的文件类型;根据特征标识将待处理数据写入与特征标识对应的目标文件中。本发明解决了由于采用现有的数据处理方式所导致的数据处理效率降低的技术问题。

Description

基于Spark的数据处理方法及装置
技术领域
本发明涉及计算机领域,具体而言,涉及一种基于Spark的数据处理方法及装置。
背景技术
目前,为了记录用户每天的操作,系统通常会保存用户的操作日志,在对日志的处理过程中,输入的日志数据可能是一个小时的日志文件,也可能是多天的日志文件,其中,由于日志文件数据量庞大,通常需要采用计算机集群并行处理。目前最流行的并行运算框架是Spark,采用统一的RDD数据结构进行数据处理。但是在官方应用程序编程接口(Application Programming Interface,API)中,一个RDD数据结构只能生成一种文件输出,无法直接输出多种文件的方案。然而,输入的日志文件中每一行日志行集合解析后得到的数据ParsedObject,都有可能属于不同数据结构,譬如页面浏览PageView,鼠标点击MouseClick等等。为了后续数据分析,每种数据结构都需要单独存储。目前,官方API中没有提供直接的多输出方案,只能采用过滤器,譬如需要PageView的数据类型,则采用一个判断PageView类型的过滤器,将符合该类型的所有数据过滤到一个子集合RDD[PageView]中,再将RDD[PageView]输出为文件。
然而,这就需要对所有数据进行多次遍历,从而导致数据处理速度大幅降低。进一步,由于需要对日志数据多次遍历,所以数据集合RDD[ParsedObject]还需要缓存,这将占据大量内存空间;如果内存不够,还需要将数据序列化到硬盘以及反序列化到内存,从而导致在占用大量存储空间的同时还耗费大量时间,严重影响了数据处理的效率。
针对相关技术中的问题,目前尚未提出有效的解决方案。
发明内容
本发明的主要目的在于提供一种基于Spark的数据处理方法及装置,以解决由于采用现有的数据处理方式所导致的数据处理效率降低问题。
根据本发明的一个方面,提供了一种基于Spark的数据处理方法,该方法包括:获取待处理数据;提取上述待处理数据的特征标识,其中,上述特征标识用于标识上述待处理数据的文件类型;根据上述特征标识将上述待处理数据写入与上述特征标识对应的目标文件中。
可选地,上述提取上述待处理数据的特征标识包括:提取上述待处理数据的数据结构类型及上述待处理数据的时间标识;利用上述数据结构类型及上述时间标识构造上述特征标识。
可选地,在上述根据上述特征标识将上述待处理数据写入与上述特征标识对应的目标文件中之前,还包括:根据上述特征标识将上述待处理数据分配到与上述特征标识对应的数据分区中,其中,具有相同特征标识的上述待处理数据将分配到同一个上述数据分区中。
可选地,上述根据上述特征标识将上述待处理数据分配到与上述特征标识对应的数据分区中包括:计算上述特征标识的哈希值;根据上述哈希值与上述数据分区的个数的取余结果,将上述特征标识对应的上述待处理数据分配到对应的上述数据分区中。
可选地,上述根据上述特征标识将上述待处理数据写入与上述特征标识对应的目标文件中包括:根据上述特征标识将上述数据分区中的上述待处理数据写入对应的上述目标文件中。
根据本发明的另一方面,提供了一种基于Spark的数据处理装置,该装置包括:获取单元,用于获取待处理数据;提取单元,用于提取上述待处理数据的特征标识,其中,上述特征标识用于标识上述待处理数据的文件类型;处理单元,用于根据上述特征标识将上述待处理数据写入与上述特征标识对应的目标文件中。
可选地,上述提取单元包括:提取模块,用于提取上述待处理数据的数据结构类型及上述待处理数据的时间标识;构造模块,用于利用上述数据结构类型及上述时间标识构造上述特征标识。
可选地,上述装置还包括:分配单元,用于在上述根据上述特征标识将上述待处理数据写入与上述特征标识对应的目标文件中之前,根据上述特征标识将上述待处理数据分配到与上述特征标识对应的数据分区中,其中,具有相同特征标识的上述待处理数据将分配到同一个上述数据分区中。
可选地,上述分配单元包括:计算模块,用于计算上述特征标识的哈希值;分配模块,用于根据上述哈希值与上述数据分区的个数的取余结果,将上述特征标识对应的上述待处理数据分配到对应的上述数据分区中。
可选地,上述处理单元包括:处理模块,用于根据上述特征标识将上述数据分区中的上述待处理数据写入对应的上述目标文件中。
通过本申请提供的实施例,通过利用特征标识对获取到的待处理数据直接进行分类写入处理,而无需多次重复遍历待处理数据,在一次数据遍历后即可将待处理数据写入到对应的目标文件中,从而克服了现有技术中需要利用各种过滤器遍历所有数据所导致的数据处理效率较低的问题,进而达到节省数据处理时间,提高数据处理效率的效果。进一步,由于利用特征标识直接写入待处理数据,从而无需再缓存全部数据,进而达到了节省存储空间的目的。
附图说明
构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种可选的基于Spark的数据处理方法的流程图;
图2是根据本发明实施例的一种可选的基于Spark的数据处理结果的示意图;以及
图3是根据本发明实施例的一种可选的基于Spark的数据处理装置的示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
实施例1
根据本发明实施例,提供了一种基于Spark的数据处理方法,如图1所示,该方法包括:
S102,获取待处理数据;
S104,提取待处理数据的特征标识,其中,特征标识用于标识待处理数据的文件类型;
S106,根据特征标识将待处理数据写入与特征标识对应的目标文件中。
可选地,在本实施例中,上述基于Spark的数据处理方法可以但不限于应用于日志数据的写入过程中,例如,上述待处理数据为将日志文件解析后得到的日志数据,从中提取该日志数据的特征标识,根据该特征标识将日志数据写入到对应的文件中,以使具有相同特征标识的日志数据保存到同一文件中。也就是说,通过利用特征标识对日志数据直接进行分类写入处理,无需多次重复遍历日志数据,在一次数据遍历后即可将日志数据写入到分类后对应的文件中,从而克服了现有技术中需要利用各种过滤器遍历所有日志数据中的每一条数据,在确定所有日志数据的类型后,再将日志数据写入对应的文件所导致的数据处理效率较低的问题,进而达到节省数据处理时间,提高数据处理效率的效果。进一步,由于利用特征标识直接写入日志数据,从而无需再缓存全部日志数据,进而达到了节省存储空间的目的。
可选地,在本实施例中,上述特征标识可以包括但不限于由待处理数据的数据结构类型及待处理数据的时间标识构成,其中,上述时间标识可以但不限于用于标识时间段,例如,1小时标识为hour1,2小时标识为hour2。
需要说明的是,上述待处理数据在根据特征标识写入目标文件之前,还包括:
S1,根据特征标识将待处理数据分配到与特征标识对应的数据分区中。
可选地,在本实施例中,具有相同特征标识的待处理数据将分配到同一个数据分区中。其中,上述数据分区中的数据可以但不限于由键值对组成,其中,上述特征标识为键值对中的键,待处理数据为键值对中的值。例如,日志数据集合RDD[(DataType_Time,ParsedObject)],其中,“DataType_Time”表示该数据的特征标识,“ParsedObject”表示数据。如图2所示,特征标识为PageView_hour1的日志数据(PageView_hour1,PageView1)-(PageView_hour1,PageView N)可以根据上述特征标识均分配到同一数据分区A中。可选地,在本实施例中,上述与不同特征标识对应的不同的数据分区可以但不限于位于一个总的日志数据集合RDD[(DataType_Time,ParsedObject)]中,而不是独立的对象。也就是说,本实施例中提供的数据分区并不同于现有技术中利用过滤器过滤出的RDD[PageView]得到的新生成的独立的数据集合。
进一步,上述数据分区中可以包括但不限于:多个特征标识对应的待处理数据,例如,如图2所示,特征标识为MouseClick_hour1的日志数据(MouseClick_hour1,MouseClick1)-(MouseClick_hour1,MouseClickN)根据上述特征标识均分配到同一数据分区C中,而特征标识为MouseClick_hour2的日志数据(MouseClick_hour2,MouseClick1)-(MouseClick_hour2,MouseClickN)也可以分配到同一数据分区C中。
通过本申请提供的实施例,通过利用特征标识对获取到的待处理数据直接进行分类写入处理,而无需多次重复遍历待处理数据,在一次数据遍历后即可将待处理数据写入到对应的目标文件中,从而克服了现有技术中需要利用各种过滤器遍历所有数据所导致的数据处理效率较低的问题,进而达到节省数据处理时间,提高数据处理效率的效果。进一步,由于利用特征标识直接写入待处理数据,从而无需再缓存全部数据,进而达到了节省存储空间的目的。
作为一种可选的方案,提取待处理数据的特征标识包括:
S1,提取待处理数据的数据结构类型及待处理数据的时间标识;
S2,利用数据结构类型及时间标识构造特征标识。
具体结合以下示例进行描述,假设待处理数据为对日志文件解析出来的数据结构为ParsedObject的日志数据,将每个ParsedObject的数据类型DataType,以及时间标识Time提取出来,进一步可以得到(DataType_Time,ParsedObject)的数据键值对,总的数据集合为RDD[(DataType_Time,ParsedObject)]。例如,数据类型为PageView,时间标识为hour1,则构造得到对应的特征标识PageView_hour1,对应的键值对为(PageView_hour1,PageView1),则将(PageView_hour1,PageView1)分配到相应的数据分区中。
通过本申请提供的实施例,通过利用提取到的待处理数据的数据结构类型及时间标识共同构造特征标识,以使在写入待处理数据时可以根据上述两个条件构成的特征标识直接形成相应的数据分区以写入对应目标文件中,而无需重复遍历过滤,从而达到节省数据处理时间的目的。
作为一种可选的方案,在根据特征标识将待处理数据写入与特征标识对应的目标文件中之前,还包括:
S1,根据特征标识将待处理数据分配到与特征标识对应的数据分区中,其中,具有相同特征标识的待处理数据将分配到同一个数据分区中。
可选地,在本实施例中,上述数据分区的数量可以尽量多,且每个数据分区内数据的大小也应该尽量相似。从而使得在对待处理数据进行并行处理时,并行的范围足够大,同时处理的速度可以足够快。
具体结合以下示例进行描述,结合图2所示,拥有相同特征标识PageView_hour1的所有数据,例如,(PageView_hour1,PageView1)-(PageView_hour1,PageViewN)都在同一个数据分区A中,拥有相同特征标识PageView_hour2的所有数据,例如,(PageView_hour2,PageView1)-(PageView_hour2,PageViewN)都在同一个数据分区B中,拥有相同特征标识MouseClick_hour1的所有数据(MouseClick_hour1,MouseClick1)-(MouseClick_hour1,MouseClickN)都在数据分区C中,拥有相同特征标识MouseClick_hour2的所有数据(MouseClick_hour2,MouseClick1)-(MouseClick_hour2,MouseClickN)也都在数据分区C中。其中,特征标识MouseClick_hour1与特征标识MouseClick_hour1虽然不同,但也分配在同一数据分区中,而具有相同特征标识的数据则不会跨数据分区分配存储。
通过本申请提供的实施例,在读取数据时通过将具有相同特征标识的待处理数据直接分配到对应的数据分区中,从而避免了利用多种过滤器对所有待处理数据进行重复遍历以确定待处理数据的数据类型所造成的数据处理效率低的问题,进而实现了提高数据处理效率的同时,还实现了无需对待处理数据进行缓存,达到节省存储空间,进而节省成本的目的。
作为一种可选的方案,根据特征标识将待处理数据分配到与特征标识对应的数据分区中包括:
S1,计算特征标识的哈希值;
S2,根据哈希值与数据分区的个数的取余结果,将特征标识对应的待处理数据分配到对应的数据分区中。
需要说明的是,为了保证具有相同特征标识的待处理数据可以被分配到同一数据分区中,本实施例中采用了哈希算法,以使待处理数据可以均匀地分配到相应的数据分区中。其中,由于不同特征标识对应的待处理数据的数据量并不一致,因而,通过利用上述方法可以将不同特征标识且不同数据量的待处理数据分配在同一数据分区中,以达到均匀分配的目的,从而保证了待处理数据的并行处理速度。例如,特征标识为PageView_hour1的数据量较大,而特征标识为MouseClick_hour2的数据量较小,则PageView_hour1和MouseClick_hour2对应的待处理数据可能分配到同一数据分区中。
具体结合以下示例进行描述,假设预先配置了10个数据分区,特征标识PageView_hour1对应的字符串通过哈希计算得到的哈希值为11,特征标识PageView_hour2对应的字符串通过哈希计算得到的哈希值为12,进一步,通过上述哈希值对10取余之后得到的结果分别为1、2,也就是说,具有相同特征标识的待处理数据将通过哈希运算后,将实现通过相同的取余结果的待处理数据分配到同一数据分区,进而保证具有相同特征标识的待处理数据分配到相同的数据分区。
通过本申请提供的实施例,通过哈希算法将待处理数据分配到对应的数据分区过程中,不仅实现了待处理数据的均匀分配,而且进一步保证了相同特征标识的待处理数据可以被分配到同一数据分区中,从而避免了对待处理数据的重复遍历,减少了数据的处理时间,进而提高了数据的处理效率。
作为一种可选的方案,根据特征标识将待处理数据写入与特征标识对应的目标文件中包括:
S1,根据特征标识将数据分区中的待处理数据写入对应的目标文件中。
具体结合以下示例进行描述,在得到与各种特征标识对应的数据分区后,可以直接将相应的数据分区中的待处理数据直接写入对应的目标文件中。例如,特征标识为PageView_hour1的数据(PageView_hour1,PageView1)至(PageView_hour1,PageViewN)都在同一个数据分区A中,可直接将该数据分区中的日志数据直接写入特征标识PageView_hour1对应的文件中。
通过本申请提供的实施例,通过一次遍历将所有待处理数据按照特征标识进行相应的分配,从而避免了对待处理数据的重复遍历及缓存,进而提高了数据处理速度,并节省了存储空间。
具体结合以下示例进行描述,假设待处理数据为对日志文件解析后的日志数据,日志数据在根据特征标识进行分类保存的数据分区为分区,其中,各个分区在一个总的数据集合RDD[(DataType_Time,ParsedObject)]中:
S1,接收输入的是日志文件,可以是单个小时的,也可以横跨数天的;
S2,按行将日志文件读入Spark,得到的是所有输入日志行的RDD,该RDD包括多个分区;
S3,对该RDD中的每行日志做解析,解析后获取待处理数据ParsedObject,以得到RDD[ParsedObject],其中,待处理数据的数据结构可以包括但不限于多种数据类型,例如,PageView,MouseClick;
S4,将待处理数据的特征标识提取出来,也就是说,将待处理数据ParsedObject的数据类型DataType,以及时间Time提取出来,得到(DataType_Time,ParsedObject)的键值对,则总的数据集合可以用RDD[(DataType_Time,ParsedObject)]标识;
S5,对总的数据集合进行重新分区,按照特征标识将待处理数据分配到对应的分区中。例如拥有特征标识PageView_hour1的所有数据(PageView_hour1,PageView1),(PageView_hour1,PageView2),…,(PageView_hour1,PageViewN)都在同一个分区A中,拥有特征标识MouseClick_hour2的所有数据(MouseClick_hour2,MouseClick1),(MouseClick_hour2,MouseClick2),…,(MouseClick_hour2,MouseClickN)等都在同一分区B中;
S6,通过遍历各个分区中的所有数据,将相同特征标识的待处理数据,写入到对应的文件中。例如,对于数据分区A,在遍历时,通过特征标识PageView_hour1得出数据类型为PageView,则需按照PageView类型数据做相应的写入(即数据序列化),同时,再通过特征标识中的时间标识,将hour1的写入到hour1小时的文件,hour2的写入到hour2的文件。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
实施例2
根据本发明实施例,还提供了一种用于实施上述基于Spark的数据处理方法的基于Spark的数据处理装置,如图3所示,该装置包括:
1)获取单元302,用于获取待处理数据;
2)提取单元304,用于提取待处理数据的特征标识,其中,特征标识用于标识待处理数据的文件类型;
3)处理单元306,用于根据特征标识将待处理数据写入与特征标识对应的目标文件中。
可选地,在本实施例中,上述基于Spark的数据处理装置可以但不限于应用于日志数据的写入过程中,例如,上述待处理数据为将日志文件解析后得到的日志数据,从中提取该日志数据的特征标识,根据该特征标识将日志数据写入到对应的文件中,以使具有相同特征标识的日志数据保存到同一文件中。也就是说,通过利用特征标识对日志数据直接进行分类写入处理,无需多次重复遍历日志数据,在一次数据遍历后即可将日志数据写入到分类后对应的文件中,从而克服了现有技术中需要利用各种过滤器遍历所有日志数据中的每一条数据,在确定所有日志数据的类型后,再将日志数据写入对应的文件所导致的数据处理效率较低的问题,进而达到节省数据处理时间,提高数据处理效率的效果。进一步,由于利用特征标识直接写入日志数据,从而无需再缓存全部日志数据,进而达到了节省存储空间的目的。
可选地,在本实施例中,上述特征标识可以包括但不限于由待处理数据的数据结构类型及待处理数据的时间标识构成,其中,上述时间标识可以但不限于用于标识时间段,例如,1小时标识为hour1,2小时标识为hour2。
需要说明的是,上述待处理数据在根据特征标识写入目标文件之前,还包括:
S1,根据特征标识将待处理数据分配到与特征标识对应的数据分区中。
可选地,在本实施例中,具有相同特征标识的待处理数据将分配到同一个数据分区中,其中,上述数据分区中的数据可以但不限于由键值对组成,其中,上述特征标识为键值对中的键,待处理数据为键值对中的值。例如,日志数据集合RDD[(DataType_Time,ParsedObject)],其中,“DataType_Time”表示该数据的特征标识,“ParsedObject”表示数据。如图2所示,特征标识为PageView_hour1的日志数据(PageView_hour1,PageView1)-(PageView_hour1,PageView N)可以根据上述特征标识均分配到同一数据分区A中。可选地,在本实施例中,上述与不同特征标识对应的不同的数据分区可以但不限于位于一个总的数据集合RDD[(DataType_Time,ParsedObject)]中,并不是独立的对象。也就是说,本实施例中提供的数据分区并不同于现有技术中利用过滤器过滤出的RDD[PageView]得到的新生成的独立的数据集合。
进一步,上述数据分区中可以包括但不限于:多个特征标识对应的待处理数据,例如,如图2所示,特征标识为MouseClick_hour1的日志数据(MouseClick_hour1,MouseClick1)-(MouseClick_hour1,MouseClickN)根据上述特征标识均分配到同一数据分区C中,而特征标识为MouseClick_hour2的日志数据(MouseClick_hour2,MouseClick1)-(MouseClick_hour2,MouseClickN)也可以分配到同一数据分区C中。
通过本申请提供的实施例,通过利用特征标识对获取到的待处理数据直接进行分类写入处理,而无需多次重复遍历待处理数据,在一次数据遍历后即可将待处理数据写入到对应的目标文件中,从而克服了现有技术中需要利用各种过滤器遍历所有数据所导致的数据处理效率较低的问题,进而达到节省数据处理时间,提高数据处理效率的效果。进一步,由于利用特征标识直接写入待处理数据,从而无需再缓存全部数据,进而达到了节省存储空间的目的。
作为一种可选的方案,提取单元304包括:
1)提取模块,用于提取待处理数据的数据结构类型及待处理数据的时间标识;
2)构造模块,用于利用数据结构类型及时间标识构造特征标识。
具体结合以下示例进行描述,假设待处理数据为对日志文件解析出来的数据结构为ParsedObject的日志数据,将每个ParsedObject的数据类型DataType,以及时间标识Time提取出来,进一步可以得到(DataType_Time,ParsedObject)的数据键值对,总的数据集合为RDD[(DataType_Time,ParsedObject)]。例如,数据类型为PageView,时间标识为hour1,则构造得到对应的特征标识PageView_hour1,对应的键值对为(PageView_hour1,PageView1),则将(PageView_hour1,PageView1)分配到相应的数据分区中。
通过本申请提供的实施例,通过利用提取到的待处理数据的数据结构类型及时间标识共同构造特征标识,以使在写入待处理数据时可以根据上述两个条件构成的特征标识直接形成相应的数据分区以写入对应目标文件中,而无需重复遍历过滤,从而达到节省数据处理时间的目的。
作为一种可选的方案,上述装置还包括:
1)分配单元,用于在根据特征标识将待处理数据写入与特征标识对应的目标文件中之前,根据特征标识将待处理数据分配到与特征标识对应的数据分区中,其中,具有相同特征标识的待处理数据将分配到同一个数据分区中。
可选地,在本实施例中,上述数据分区的数量可以尽量多,且每个数据分区内数据的大小也应该尽量相似。从而使得在对待处理数据进行并行处理时,并行的范围足够大,同时处理的速度可以足够快,其中,上述用于并行处理待处理数据的运算框架可以但不限于是Spark并行运算框架。
具体结合以下示例进行描述,结合图2所示,拥有相同特征标识PageView_hour1的所有数据,例如,(PageView_hour1,PageView1)-(PageView_hour1,PageViewN)都在同一个数据分区A中,拥有相同特征标识PageView_hour2的所有数据,例如,(PageView_hour2,PageView1)-(PageView_hour2,PageViewN)都在同一个数据分区B中,拥有相同特征标识MouseClick_hour1的所有数据(MouseClick_hour1,MouseClick1)-(MouseClick_hour1,MouseClickN)都在数据分区C中,拥有相同特征标识MouseClick_hour2的所有数据(MouseClick_hour2,MouseClick1)-(MouseClick_hour2,MouseClickN)也都在数据分区C中。其中,特征标识MouseClick_hour1与特征标识MouseClick_hour1虽然不同,但也分配在同一数据分区中,而具有相同特征标识的数据则不会跨数据分区分配存储。
通过本申请提供的实施例,在读取数据时通过将具有相同特征标识的待处理数据直接分配到对应的数据分区中,从而避免了利用多种过滤器对所有待处理数据进行重复遍历以确定待处理数据的数据类型所造成的数据处理效率低的问题,进而实现了提高数据处理效率的同时,还实现了无需对待处理数据进行缓存,达到节省存储空间,进而节省成本的目的。
作为一种可选的方案,分配单元包括:
1)计算模块,用于计算特征标识的哈希值;
2)分配模块,用于根据哈希值与数据分区的个数的取余结果,将特征标识对应的待处理数据分配到对应的数据分区中。
需要说明的是,为了保证具有相同特征标识的待处理数据可以被分配到同一数据分区中,本实施例中采用了哈希算法,以使待处理数据可以均匀地分配到相应的数据分区中。其中,由于不同特征标识对应的待处理数据的数据量并不一致,因而,通过利用上述方法可以将不同特征标识且不同数据量的待处理数据分配在同一数据分区中,以达到均匀分配的目的,从而保证了待处理数据的并行处理速度。例如,特征标识为PageView_hour1的数据量较大,而特征标识为MouseClick_hour2的数据量较小,则PageView_hour1和MouseClick_hour2对应的待处理数据可能分配到同一数据分区中。
具体结合以下示例进行描述,假设预先配置了10个数据分区,特征标识PageView_hour1对应的字符串通过哈希计算得到的哈希值为11,特征标识PageView_hour2对应的字符串通过哈希计算得到的哈希值为12,进一步,通过上述哈希值对10取余之后得到的结果分别为1、2,也就是说,具有相同特征标识的待处理数据将通过哈希运算后,将实现通过相同的取余结果的待处理数据分配到同一数据分区,进而保证具有相同特征标识的待处理数据分配到相同的数据分区。
通过本申请提供的实施例,通过哈希算法将待处理数据分配到对应的数据分区过程中,不仅实现了待处理数据的均匀分配,而且进一步保证了相同特征标识的待处理数据可以被分配到同一数据分区中,从而避免了对待处理数据的重复遍历,减少了数据的处理时间,进而提高了数据的处理效率。
作为一种可选的方案,处理单元306包括:
1)处理模块,用于根据特征标识将数据分区中的待处理数据写入对应的目标文件中。
具体结合以下示例进行描述,在得到与各种特征标识对应的数据分区后,可以直接将相应的数据分区中的待处理数据直接写入对应的目标文件中。例如,特征标识为PageView_hour1的数据(PageView_hour1,PageView1)至(PageView_hour1,PageViewN)都在同一个数据分区A中,可直接将该数据分区中的日志数据直接写入特征标识PageView_hour1对应的文件中。
通过本申请提供的实施例,通过一次遍历将所有待处理数据按照特征标识进行相应的分配,从而避免了对待处理数据的重复遍历及缓存,进而提高了数据处理速度,并节省了存储空间。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种基于Spark的数据处理方法,其特征在于,包括:
获取待处理数据;
提取所述待处理数据的特征标识,其中,所述特征标识用于标识所述待处理数据的文件类型;
根据所述特征标识将所述待处理数据写入与所述特征标识对应的目标文件中。
2.根据权利要求1所述的方法,其特征在于,所述提取所述待处理数据的特征标识包括:
提取所述待处理数据的数据结构类型及所述待处理数据的时间标识;
利用所述数据结构类型及所述时间标识构造所述特征标识。
3.根据权利要求1所述的方法,其特征在于,在所述根据所述特征标识将所述待处理数据写入与所述特征标识对应的目标文件中之前,还包括:
根据所述特征标识将所述待处理数据分配到与所述特征标识对应的数据分区中,其中,具有相同特征标识的所述待处理数据将分配到同一个所述数据分区中。
4.根据权利要求3所述的方法,其特征在于,所述根据所述特征标识将所述待处理数据分配到与所述特征标识对应的数据分区中包括:
计算所述特征标识的哈希值;
根据所述哈希值与所述数据分区的个数的取余结果,将所述特征标识对应的所述待处理数据分配到对应的所述数据分区中。
5.根据权利要求3所述的方法,其特征在于,所述根据所述特征标识将所述待处理数据写入与所述特征标识对应的目标文件中包括:
根据所述特征标识将所述数据分区中的所述待处理数据写入对应的所述目标文件中。
6.一种基于Spark的数据处理装置,其特征在于,包括:
获取单元,用于获取待处理数据;
提取单元,用于提取所述待处理数据的特征标识,其中,所述特征标识用于标识所述待处理数据的文件类型;
处理单元,用于根据所述特征标识将所述待处理数据写入与所述特征标识对应的目标文件中。
7.根据权利要求6所述的装置,其特征在于,所述提取单元包括:
提取模块,用于提取所述待处理数据的数据结构类型及所述待处理数据的时间标识;
构造模块,用于利用所述数据结构类型及所述时间标识构造所述特征标识。
8.根据权利要求6所述的装置,其特征在于,还包括:
分配单元,用于在所述根据所述特征标识将所述待处理数据写入与所述特征标识对应的目标文件中之前,根据所述特征标识将所述待处理数据分配到与所述特征标识对应的数据分区中,其中,具有相同特征标识的所述待处理数据将分配到同一个所述数据分区中。
9.根据权利要求8所述的装置,其特征在于,所述分配单元包括:
计算模块,用于计算所述特征标识的哈希值;
分配模块,用于根据所述哈希值与所述数据分区的个数的取余结果,将所述特征标识对应的所述待处理数据分配到对应的所述数据分区中。
10.根据权利要求8所述的装置,其特征在于,所述处理单元包括:
处理模块,用于根据所述特征标识将所述数据分区中的所述待处理数据写入对应的所述目标文件中。
CN201410779342.8A 2014-12-15 2014-12-15 基于Spark的数据处理方法及装置 Active CN104408190B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410779342.8A CN104408190B (zh) 2014-12-15 2014-12-15 基于Spark的数据处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410779342.8A CN104408190B (zh) 2014-12-15 2014-12-15 基于Spark的数据处理方法及装置

Publications (2)

Publication Number Publication Date
CN104408190A true CN104408190A (zh) 2015-03-11
CN104408190B CN104408190B (zh) 2018-06-26

Family

ID=52645821

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410779342.8A Active CN104408190B (zh) 2014-12-15 2014-12-15 基于Spark的数据处理方法及装置

Country Status (1)

Country Link
CN (1) CN104408190B (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105468770A (zh) * 2015-12-09 2016-04-06 合一网络技术(北京)有限公司 一种数据处理方法及系统
CN105550296A (zh) * 2015-12-10 2016-05-04 深圳市华讯方舟软件技术有限公司 一种基于spark-SQL大数据处理平台的数据导入方法
CN105847885A (zh) * 2016-05-25 2016-08-10 武汉斗鱼网络科技有限公司 一种基于视频流播放状态的白名单生成系统及方法
CN106027548A (zh) * 2016-06-28 2016-10-12 武汉斗鱼网络科技有限公司 视频直播网站基于页面心跳事件生成白名单的系统及方法
CN106060594A (zh) * 2016-05-25 2016-10-26 武汉斗鱼网络科技有限公司 一种基于播放器心跳的白名单生成系统及方法
CN106919475A (zh) * 2016-08-02 2017-07-04 阿里巴巴集团控股有限公司 一种数据处理方法和装置
CN107330114A (zh) * 2017-07-11 2017-11-07 王焱华 一种大数据处理方法
CN107948234A (zh) * 2016-10-13 2018-04-20 北京国双科技有限公司 数据的处理方法及装置
CN108664597A (zh) * 2018-05-08 2018-10-16 深圳市创梦天地科技有限公司 一种移动操作系统上的数据缓存装置、方法及存储介质
CN109408711A (zh) * 2018-09-29 2019-03-01 北京三快在线科技有限公司 数据过滤方法、装置、电子设备及存储介质
CN110019497A (zh) * 2017-08-07 2019-07-16 北京国双科技有限公司 一种数据读取方法及装置
CN110704381A (zh) * 2019-09-06 2020-01-17 平安城市建设科技(深圳)有限公司 数据解析方法、装置及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102414677A (zh) * 2009-04-22 2012-04-11 微软公司 包括自动分类规则的数据分类流水线
CN102422286A (zh) * 2009-03-11 2012-04-18 香港浸会大学 利用图像获取参数和元数据自动和半自动的图像分类、注释和标签
US20130170738A1 (en) * 2010-07-02 2013-07-04 Giuseppe Capuozzo Computer-implemented method, a computer program product and a computer system for image processing
US20130345896A1 (en) * 2012-06-25 2013-12-26 Vehcon, Inc. Vehicle data collection and verification

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102422286A (zh) * 2009-03-11 2012-04-18 香港浸会大学 利用图像获取参数和元数据自动和半自动的图像分类、注释和标签
CN102414677A (zh) * 2009-04-22 2012-04-11 微软公司 包括自动分类规则的数据分类流水线
US20130170738A1 (en) * 2010-07-02 2013-07-04 Giuseppe Capuozzo Computer-implemented method, a computer program product and a computer system for image processing
US20130345896A1 (en) * 2012-06-25 2013-12-26 Vehcon, Inc. Vehicle data collection and verification

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105468770A (zh) * 2015-12-09 2016-04-06 合一网络技术(北京)有限公司 一种数据处理方法及系统
WO2017096940A1 (zh) * 2015-12-10 2017-06-15 深圳市华讯方舟软件技术有限公司 一种基于spark-SQL大数据处理平台的数据导入方法
CN105550296A (zh) * 2015-12-10 2016-05-04 深圳市华讯方舟软件技术有限公司 一种基于spark-SQL大数据处理平台的数据导入方法
CN105550296B (zh) * 2015-12-10 2018-10-30 深圳市华讯方舟软件技术有限公司 一种基于spark-SQL大数据处理平台的数据导入方法
CN105847885B (zh) * 2016-05-25 2019-03-15 武汉斗鱼网络科技有限公司 一种基于视频流播放状态的白名单生成系统及方法
CN106060594A (zh) * 2016-05-25 2016-10-26 武汉斗鱼网络科技有限公司 一种基于播放器心跳的白名单生成系统及方法
CN105847885A (zh) * 2016-05-25 2016-08-10 武汉斗鱼网络科技有限公司 一种基于视频流播放状态的白名单生成系统及方法
CN106027548B (zh) * 2016-06-28 2019-05-17 武汉斗鱼网络科技有限公司 视频直播网站基于页面心跳事件生成白名单的系统及方法
CN106027548A (zh) * 2016-06-28 2016-10-12 武汉斗鱼网络科技有限公司 视频直播网站基于页面心跳事件生成白名单的系统及方法
CN106919475A (zh) * 2016-08-02 2017-07-04 阿里巴巴集团控股有限公司 一种数据处理方法和装置
CN107948234A (zh) * 2016-10-13 2018-04-20 北京国双科技有限公司 数据的处理方法及装置
CN107948234B (zh) * 2016-10-13 2021-02-12 北京国双科技有限公司 数据的处理方法及装置
CN107330114A (zh) * 2017-07-11 2017-11-07 王焱华 一种大数据处理方法
CN110019497A (zh) * 2017-08-07 2019-07-16 北京国双科技有限公司 一种数据读取方法及装置
CN108664597A (zh) * 2018-05-08 2018-10-16 深圳市创梦天地科技有限公司 一种移动操作系统上的数据缓存装置、方法及存储介质
CN109408711A (zh) * 2018-09-29 2019-03-01 北京三快在线科技有限公司 数据过滤方法、装置、电子设备及存储介质
CN109408711B (zh) * 2018-09-29 2019-12-06 北京三快在线科技有限公司 数据过滤方法、装置、电子设备及存储介质
CN110704381A (zh) * 2019-09-06 2020-01-17 平安城市建设科技(深圳)有限公司 数据解析方法、装置及存储介质

Also Published As

Publication number Publication date
CN104408190B (zh) 2018-06-26

Similar Documents

Publication Publication Date Title
CN104408190A (zh) 基于Spark的数据处理方法及装置
CN105224606B (zh) 一种用户标识的处理方法及装置
CN104391954A (zh) 数据库日志的处理方法及装置
CN105335855A (zh) 一种交易风险识别方法及装置
CN104869009A (zh) 网站数据统计的系统和方法
US9189518B2 (en) Gathering index statistics using sampling
CN103679012A (zh) 一种可移植可执行文件的聚类方法和装置
CN110381151A (zh) 一种异常设备检测方法及装置
CN103530429A (zh) 一种网页正文抽取的方法
CN113364753A (zh) 反爬虫方法、装置、电子设备及计算机可读存储介质
CN103595571A (zh) 网站访问日志的预处理方法、装置及系统
CN106909567B (zh) 数据处理方法及装置
CN107357885A (zh) 数据写入方法及装置、电子设备、计算机存储介质
CN103905482A (zh) 推送信息的方法、推送服务器和系统
CN106528344A (zh) 一种存储系统日志管理方法
CN106610994A (zh) 点击路径的统计方法和装置
CN107992402A (zh) 日志管理方法及日志管理装置
CN108197465B (zh) 一种网址检测方法及装置
CN107818145A (zh) 一种基于动态爬虫的用户行为分类标签提取方法
CN103986606A (zh) 一种基于MapReduce算法的并行识别、统计网页URL的方法
CN105989124B (zh) Sqlite文件恢复自增主键值的方法及其系统
CN106126670A (zh) 运营数据排序处理方法及装置
CN114116811B (zh) 日志处理方法、装置、设备及存储介质
CN103312785B (zh) 一种访问关系的确定方法及装置
US20220066988A1 (en) Hash suppression

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: Spark based data processing method and device

Effective date of registration: 20190531

Granted publication date: 20180626

Pledgee: Shenzhen Black Horse World Investment Consulting Co., Ltd.

Pledgor: Beijing Guoshuang Technology Co.,Ltd.

Registration number: 2019990000503

PE01 Entry into force of the registration of the contract for pledge of patent right
CP02 Change in the address of a patent holder

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

Patentee after: Beijing Guoshuang Technology Co.,Ltd.

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

Patentee before: Beijing Guoshuang Technology Co.,Ltd.

CP02 Change in the address of a patent holder