文件统计方法和文件统计系统的制作方法

文档序号:9750982阅读:481来源:国知局
文件统计方法和文件统计系统的制作方法
【技术领域】
[0001]本发明涉及数据处理领域,具体涉及一种文件统计方法和文件统计系统。
【背景技术】
[0002]对于诸如日志文件的文本文件来说,有时需要对其进行检测,获知一些相关信息,例如行数。对于较小的文本文件来说,可以直接将该文件打开并统计文件中的行数。然而,有些文本文件(例如某些业务日志文件)可能非常大,例如,其可能大于500GB。对于这种超大的文本文件来说,很难将其直接打开并统计其行数,因为这需要消耗非常大的处理资源,即要求检测该文件的设备具有较高的数据处理能力和运算速度。通常对于这种超大文本文件,现有方法通常是首先将其切割成多个较小的文件,随后将每个切割文件分别打开并对每个切割文件的行数进行计数,随后将所有行数汇总获得该文本文件的总行数。这种方式需要执行文件切割、行数计数以及行数汇总等步骤,因此其耗时较长。因此,需要提供一种简单高效的文件统计方法。

【发明内容】

[0003]鉴于上述问题,提出了本发明以便提供一种至少部分地解决上述问题的文件统计方法和文件统计系统。
[0004]依据本发明的一个方面,提供了一种文件统计方法。该文件统计方法包括:从文本文件中抽取一个或多个文件片段,其中,一个或多个文件片段中的每一个文件片段具有特定数据量;检测一个或多个文件片段中的每一个文件片段的行数;根据一个或多个文件片段中的每一个文件片段的行数计算具有特定数据量的文件片段的平均行数;以及根据具有特定数据量的文件片段的平均行数和文本文件的数据量估计文本文件的行数。
[0005]依据本发明的一个方面,提供了一种文件统计系统。该文件统计系统包括第一抽取装置、第一检测装置、计算装置和估计装置。第一抽取装置用于从文本文件中抽取一个或多个文件片段,其中,一个或多个文件片段中的每一个文件片段具有特定数据量。第一检测装置用于检测一个或多个文件片段中的每一个文件片段的行数。计算装置用于根据一个或多个文件片段中的每一个文件片段的行数计算具有特定数据量的文件片段的平均行数。估计装置用于根据具有特定数据量的文件片段的平均行数和文本文件的数据量估计文本文件的行数。
[0006]根据本发明提供的文件统计方法和文件统计系统,采用抽样方式确定文本文件中的具有特定数据量的文件片段的平均行数,并进一步基于该平均行数估计整个文本文件的行数,这种方式简单高效、成本低,通过这种方式可以较准确地估计出整个文本文件的行数。
[0007]上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的【具体实施方式】。
【附图说明】
[0008]通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0009]图1示出根据本发明一个实施例的文件统计方法的流程示意图;
[0010]图2示出根据本发明另一个实施例的文件统计方法的流程示意图;
[0011]图3示出根据本发明另一个实施例的文件统计方法的流程示意图;
[0012]图4示出根据本发明另一个实施例的文件统计方法的流程示意图;以及
[0013]图5示出根据本发明一个实施例的文件统计系统的示意性框图。
【具体实施方式】
[0014]下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0015]根据本发明的一个方面,提供一种文件统计方法。图1示出根据本发明一个实施例的文件统计方法100的流程示意图。如图1所示,文本统计方法100包括以下步骤。
[0016]在步骤S110,从文本文件中抽取一个或多个文件片段,其中,一个或多个文件片段中的每一个文件片段具有特定数据量。
[0017]从文本文件中抽取一个或多个文件片段也就是对文本文件进行抽样的过程。该抽样可以是随机抽样,例如在文本文件中随意抽取文件片段。该抽样也可以是根据预设规则进行抽样,例如每隔固定间隔抽取一个文件片段。可以进行多次抽样,在每次抽样时,从文本文件中抽取一个文件片段。每个文件片段的数据量是一致的。例如,对于500GB的文本文件来说,可以抽取一个或多个64MB的文件片段。
[0018]在步骤S120,检测一个或多个文件片段中的每一个文件片段的行数。
[0019]对于每个文件片段来说,可以将该文件片段打开,直接对文件片段的行数进行计数。可以理解的是,各文件片段的行数可能相同或不同。例如,对于500GB的文本文件来说,可以在每100GB中抽取一个64MB的文件片段,一共可以抽取到五个64MB的文件片段。随后,可以分别将这五个64MB的文件片段打开并对每个文件片段的行数进行计数。
[0020]在步骤S130,根据一个或多个文件片段中的每一个文件片段的行数计算具有特定数据量的文件片段的平均行数。
[0021]计算具有特定数据量的文件片段的平均行数可以是将该一个或多个文件片段的总行数除以该一个或多个文件片段的片段个数。假设上述五个64MB的文件片段的行数分别是7行、10行、11行、9行和5行,总数是42行。根据这五个文件片段的行数可以计算出在该500GB的文本文件中,64MB的文件片段的平均行数是42/5,S卩8.4行。
[0022]在步骤S140,根据具有特定数据量的文件片段的平均行数和文本文件的数据量估计文本文件的行数。
[0023]可以根据以下公式估计文本文件的行数:
[0024]N=Q/Qs*n,
[0025]其中,N为文本文件的行数,Q为文本文件的数据量,QsS特定数据量,n为具有特定数据量的文件片段的平均行数。
[0026]例如,对于上述500GB的文本文件来说,由于该文件的64ΜΒ的文件片段的平均行数是8.4行,因此可以估计出该文件的行数为500GB/64MB*8.4 = 67200。
[0027]可以理解的是,本文所述的文本文件优选地是其中各行的数据量基本一致的文件。这样,通过文件统计方法100所估计出的文本文件的行数准确度会较高。
[0028]在现有技术中,有时采用较高性能的处理系统,例如分布式文件系统(HadoopDistributed File System,简称HDFS),对超大文本文件进行处理以统计文本文件的行数,这种方式的成本较高。与采用HDFS的方法相比,本发明提供的文件统计方法由于并未对整个文本文件的行数进行计数,因此不要求文件统计系统具有较高的处理性能,从而可以降低成本。
[0029]根据本发明提供的文件统计方法,采用抽样方式确定文本文件中的具有特定数据量的文件片段的平均行数,并进一步基于该平均行数估计整个文本文件的行数,这种方式简单高效、成本低,通过这种方式可以较准确地估计出整个文本文件的行数。
[0030]根据本发明另一个实施例,文件统计方法100可以进一步包括:判断文本文件的数据量是否大于预定阈值,如果文本文件的数据量大于预定阈值,则转至上述步骤S110。
[0031]根据上述步骤SI10至步骤S140对文本文件的行数进行估计的方式比较适用于超大文本文件。对于较小的文本文件来说,可以直接将整个文本文件打开并检测其行数。因此,可以事先设定一个预定阈值用来判断文本文件适合采用哪种方式来统计行数。该预定阈值可以根据需要而定,例如,其可以是10GB以上的任意数据量,诸如10GB、200GB、300GB、500GB等等。文
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1