基于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对应的文件中。
通过本申请提供的实施例,通过一次遍历将所有待处理数据按照特征标识进行相应的分配,从而避免了对待处理数据的重复遍历及缓存,进而提高了数据处理速度,并节省了存储空间。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。