一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种生成大数据排行榜的方法、装置、设备及存储介质与流程

2022-11-16 17:10:32 来源:中国专利 TAG:


1.本发明涉及数据处理技术领域,特别涉及一种生成大数据排行榜的方法、装置、设备及存储介质。


背景技术:

2.随着移动互联网应用技术的发展,产生了各种不同的业务场景,这些业务场景无时无刻不在产生与之对应的信息流,这些信息流又通过积累聚合产生新的信息价值:排行榜。
3.排行榜是对某一相关同类事物的客观实力的反映,带有相互之间的比较性质。比如,话题排行榜、帖子排行榜、游戏战绩排行榜、关注度排行榜、流行歌曲排行榜、球队实力排行榜等等。
4.目前,排行榜往往需要在巨量的数据中获得,例如,从1000万条会话中找出流量峰值top200的会话,相关的算法是对1000万条会话按照流量峰值进行排序,然后,取前200条会话继续分析,显而易见,相关算法至少需要额外开辟1000万个会话的存储空间,快速排序算法的时间复杂度是o(n),1000万个会话排序完成后,仅0.002%的数据是需要的,99.998%的排序是不需要的,不但消耗内存资源和时间,而且,做了很多无用功。
5.因此,亟需一种方法,能够在海量数据的情况下,节约内存、高效和快速的生成排行榜。


技术实现要素:

6.本技术提供了一种生成大数据排行榜的方法、装置、设备及存储介质,以解决现有的大数据排行榜占用内存大,效率低和速度慢的问题。
7.本发明第一方面提供一种生成大数据排行榜的方法,包括如下步骤:
8.选取大数据中与排名数量相同的第一数据元素集,作为初始排行榜,其中,排名数量为目标排行榜中容纳的数据数量;
9.建立与第一数据元素集对应的存储空间,用以存储第一数据元素集;
10.基于初始排行榜,确定该初始排行榜中的第一极值数据,其中,第一极值数据,表征第一数据元素集中的最小值的数据元素;
11.将第二数据元素集中的数据元素与第一极值数据比对,基于预设的比对规则,确定比对结果,其中,第二数据元素集,表征大数据中除第一数据元素集之外的数据元素;
12.根据比对结果,生成目标排行榜。
13.在其中一个可实施方式中,选取大数据中与排名数量相同的第一数据元素集,作为初始排行榜的步骤中,还包括:
14.对第一数据元素集初始化。
15.在其中一个可实施方式中,基于初始排行榜,确定该初始排行榜中的第一极值数据的步骤中,还包括:
16.对初始排行榜中的第一极值数据,进行索引标记,以便通过索引标记找到该第一极值数据。
17.在其中一个可实施方式中,将第二数据元素集中的数据元素与第一极值数据比对,基于预设的比对规则,确定比对结果的步骤中,还包括:
18.确定数据元素与第一极值数据的大小;
19.基于预设的对比规则,选择是否更新第一极值数据。
20.在其中一个可实施方式中,根据比对结果,生成目标排行榜的步骤中,还包括:
21.根据比对结果,判断是否需要更新第一极值数据;
22.若更新第一极值数据,计算更新后的初始排行榜的极值数据,得到第二极值数据,对第二极值数据进行索引标记;
23.若不更新第一极值数据,将比对的数据元素舍弃,继续遍历第二数据元素集。
24.在其中一个可实施方式中,若更新第一极值数据,计算更新后的初始排行榜的极值数据,得到第二极值数据,对第二极值数据进行索引标记的步骤中,还包括;
25.根据第一极值数据更新的结果,舍弃该第一极值数据;
26.更新第一数据元素集,存储空间存储与该第一极值数据比对的数据元素。
27.在其中一个可实施方式中,根据比对结果,生成目标排行榜的步骤之后,还包括:
28.对目标排行榜中的数据元素进行顺序排序;
29.基于顺序排序结果,并更新目标排行榜。
30.本发明第二方面提供一种生成大数据排行榜的方法的装置,包括:
31.建立单元,用于选取大数据中与排名数量相同的第一数据元素集,作为初始排行榜,其中,排名数量为目标排行榜中容纳的数据数量;
32.存储单元,用于建立与第一数据元素集对应的存储空间,用以存储第一数据元素集;
33.确定单元,用于基于初始排行榜,确定该初始排行榜中的第一极值数据,其中,第一极值数据,表征第一数据元素集中的最小值的数据元素;
34.比对单元,用于将第二数据元素集中的数据元素与第一极值数据比对,基于预设的比对规则,确定比对结果,其中,第二数据元素集,表征大数据中除第一数据元素集之外的数据元素;
35.生成排行榜单元,用于根据比对结果,生成目标排行榜。
36.本发明第三方面提供一种计算机可读存储介质,该存储介质存储可执行指令,可执行指令在被处理器执行时,导致如上述的生成大数据排行榜的方法的执行。
37.本发明第四方面提供一种电子设备,电子设备包括处理器和存储器,存储器中存储有至少一条指令或至少一段程序,至少一条指令或至少一段程序由处理器加载并执行以实现如上述的生成大数据排行榜的方法。
38.由以上方案可知,本技术提供了一种生成大数据排行榜的方法、装置、设备及存储介质,在大数据中选取与排名数量相对应的第一数据元素集,构成初始排行榜;计算初始排行榜中的第一极值数据,遍历第二数据元素集,并与第一极值数据进行依次比对,根据比对的预设规则对第一极值数据进行更新,最终生成目标排行榜。本技术的方案通过,数据元素与第一极值数据不断的比对过程中,第二数据元素集中数据元素舍弃的会越来越多,收敛
速度越来越快,并且,无需开辟额外的回话存储空间,具有内存消耗小,结果精度高,不受设备和平台限制,适用性广的优点。
附图说明
39.为了更清楚地说明本技术的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
40.图1为本技术提供的一种生成大数据排行榜的方法的流程示意图;
41.图2为本技术提供的一种生成大数据排行榜的方法的第二数据元素集中的数据元素与第一极值数据比对的流程示意图;
42.图3为本技术提供的一种生成大数据排行榜的方法的生成目标排行榜的过程流程示意图;
43.图4为本技术提供的一种生成大数据排行榜的方法的目标排行榜排序程流程示意图;
44.图5为本技术提供的一种生成大数据排行榜的方法的存储空间更新的流程示意图;
45.图6为本技术提供的一种生成大数据排行榜的方法的实施例的流程示意图。
具体实施方式
46.为使本技术的目的、实施方式和优点更加清楚,下面将结合本技术示例性实施例中的附图,对本技术示例性实施方式进行清楚、完整地描述,显然,所描述的示例性实施例仅是本技术一部分实施例,而不是全部的实施例。
47.应当理解,本技术中说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,例如能够根据本技术实施例图示或描述中给出那些以外的顺序实施。
48.从海量的信息数据找出流量峰值的top排名会话,采用的方法大多是开辟出存储空间用于存放海量的信息数据,再通过统计数据,得到top排名会话。例如,需要处理1000万条数据的情况下,选出前top200条会话,需要开辟出1000万个会话的存储空间,快速排序算法的时间复杂度是o(nlogn),1000万个会话中,仅0.002%的数据是需要的,99.998%的排序是不需要的。占用了大量的内存资源。并且,在1000万条数据中计算top200数据,需要对1000万条数据排序,然后在计算,收敛的速度慢,所需的时间较长。
49.本技术旨在提供一种生成大数据排行榜的方法,下面对本技术的方法进行详细说明:
50.参阅图1至图6,本发明提供一种生成大数据排行榜的方法,包括如下步骤:
51.如图1所示,s101:选取大数据中与排名数量相同的第一数据元素集,作为初始排行榜。
52.其中,排名数量为目标排行榜中容纳的数据数量。
53.排名数量可以根据目标排行榜进行预先设定,以使目标排行榜中预先设定的数量
与排名数量所具有的数据数量相同。
54.需要说明地是,大数据已经以某种形式保存的情况下,直接使用大数据即可,无需改变大数据的保存形式。在后续的大数据筛选过程中,可以以大数据为一维数组或单链表的形式进行示例性地说明。
55.还需要说明地是,第一数据元素集表示的是排名数量中所有数据的集合。
56.第一数据元素集作为初始排行榜,在后续的执行步骤中,对第一数据元素集进行多次更新,以便初始排行榜最终形成目标排行榜。
57.可以理解地是,为了方便大数据中的数据元素与第一数据元素集中的数据元素进行比对,可选择地,将第一数据元素集中的数据元素进行初始化,所有数据元素初始化为0,以便减少比对误差。
58.在本实施例中,在大数据中选取与排名数量相同的第一数据元素集作为初始排行榜,用于后续步骤的数据元素比对,并且,将第一数据元素集中的数据元素初始化,不仅便于后续数据元素的比对,还能够减少比对中存在的误差,提高准确性。
59.s102:建立与第一数据元素集对应的存储空间,用以存储第一数据元素集。
60.其中,存储空间为能够存储数据的空间,例如,存储空间为内存或磁盘等,本技术方案并不加以限定。
61.将第一数据元素集存储在存储空间中,能够便于后续步骤中对第一数据元素集中的更新的数据元素的存储。
62.在本实施例中,通过建立存放第一数据元素集的存储空间,方便更新数据元素的存储,此外,无需建立额外的存储空间,用来存储大数据中的数据元素,节省了存储空间。
63.s103:基于初始排行榜,确定该初始排行榜中的第一极值数据。
64.其中,第一极值数据表征第一数据元素集中的最小值的数据元素。
65.可以理解地是,对第一数据元素集中包括的数据元素进行比较,确定最小值的数据元素,并将其设定为第一极值数据,通过该第一极值数据的设定可以知道,第一数据元素集中的其他数据元素均大于该第一极值数据,当后续步骤中需要更新第一数据元素集的情况下,能够通过上述方式确定需要更新的数据元素。
66.需要说明地是,为了便于检索,对第一极值数据进行索引标记,以便找到该第一极值数据。例如,在大数据中,获取top200个最大的数据的情况下,第一数据元素集中包括有200个数据元素,首先对200个数据元素进行初始化,再找到这200个数据元素中的最小值作为第一极值数据(假设第一极值数据为2000),并对第一极值数据进行索引标记(假设索引标记为50),以便后续步骤中选取大数据中的数据元素值与2000比较,若大于2000即可通过索引标记50找到对应的数据元素。
67.本实施例中,通过在第一数据元素集中设定最小值的数据元素作为第一极值数据,并且,对第一极值数据进行索引标记,便于将大数据中的数据元素与第一极值数据进行比较,当需要更新第一极值数据的情况下,通过索引标记找到第一极值数据进行更新,具有快速定位,算法简单的优点。
68.s104:将第二数据元素集中的数据元素与第一极值数据比对,基于预设的比对规则,确定比对结果。
69.其中,第二数据元素集,表征大数据中除第一数据元素集之外的数据元素。
70.可以理解地是,大数据中除第一数据元素集之外的数据元素被定义为第二数据元素集。当大数据中增加额外的数据元素的情况下,也应归属与第二数据元素集中,选取第二数据元素集中的数据元素与第一极值数据比对。
71.步骤s104中,将第二数据元素集中的数据元素与第一极值数据比对,还具体包括s1041和s1042步骤。
72.如图2所示,s1041:确定数据元素与第一极值数据的大小。
73.其中,在第二数据元素集中选取的数据元素与第一极值数据比较大小。确定对比的两个数据元素大小的情况下,即可舍弃较小的数据元素,保留较大的数据元素。
74.s1042:基于预设的对比规则,选择是否更新第一极值数据。
75.其中,预设的比对规则可以理解为两个数据进行大小的比对后,如何进行后续的处理。
76.由于本技术中要得到大数据的排行榜,优选地,比对规则为:
77.1.当两个数据比对后,留较大数据,舍弃较小数据。
78.2.两个数据相等的情况下,数据不更新。
79.例如前述案例中,第一极值数据为2000的情况下,与该第一极值数据比对的第二数据元素集中的数据元素为2300的情况下,通过索引标记找到第一极值数据对应的数据元素,并对其更新。同理,与第一极值数据比对的第二数据元素集中的数据元素为1800的情况下,无需更新第一极值数据,舍弃第二数据元素集中的数据元素;与第一极值数据比对的第二数据元素集中的数据元素为2000的情况下,由于第一极值数据同样为2000,无需更新第一极值数据,舍弃该第二数据元素集中的数据元素。
80.可以理解地是,需要遍历第二数据元素集中的数据,依次与第一极值数据进行比对,才能得到准确的目标排行榜。
81.在本实施例中,将第二数据元素集中的数据元素与第一极值数据比对,并基于预设的比对规则,确定比对结果,决定是否需要更新第一极值数据。通过该方式,不断的对初始排行榜进行更新,以使得初始排行榜中的第一数据元素集始终保持最大。
82.s105:根据比对结果,生成目标排行榜。
83.其中,通过第二数据元素集中的数据元素与第一极值数据的不断比对,对第一数据元素集进行更新,最终生成目标排行榜。
84.步骤s105中,生成目标排行榜的过程中,还具体包括步骤s1051至s1053。
85.如图3所示,s1051:根据比对结果,判断是否需要更新第一极值数据。
86.其中,当第二数据元素集中的数据元素大于第一极值数据的情况下,即可判定为需要更新第一极值数据。
87.s1052:若更新第一极值数据,计算更新后的初始排行榜的极值数据,得到第二极值数据,对第二极值数据进行索引标记。
88.其中,若更新第一极值数据,即将第二数据元素集中的比第一极值数据大的数据元素,通过索引标记找到第一数据元素集中的数据元素,进行相应的更新,可以理解地是,第一数据元素集中更新的数据元素,并不确定为是否为第一数据元素集中的最小值,因此,还需要计算第一数据元素中的所有数据元素中的第二极值数据。
89.第二极值数据表示更新第一数据元素集中的数据元素后,重新计算得出的最小值
的数据元素。将第二极值数据再与第二数据元素集中的数据元素进行依次比对。例如前述案例中,第一极值数据为2000的情况下,更新第一极值数据后的第二极值数据为2500,并对该数据元素进行索引标记50。继续遍历第二数据元素集中的数据元素与第二极值数据进行比对,小于2500的数据元素直接舍弃。
90.s1053:若不更新第一极值数据,将比对的数据元素舍弃,继续遍历第二数据元素集。
91.本实施例中,若更新第一极值数据的情况下,舍弃第一极值数据代表的数据元素,并进行相应的更新;若不更新第一极值数据的情况下,继续遍历第二数据元素集。当继续遍历第二数据元素集一定的时间后,第一数据元素集中的极值数据相对较大,也就是说,再继续遍历第二数据元素集时,舍弃的数据元素会越来越多,相对于大数据来说,数据的收敛速度会越来越快,因此,能够快速的生成排行榜。
92.此外,本方案相较于堆排序的方案中无需建立小根堆,直接找第一数据元素集中的最小值即可,当第二数据元素集中的数据元素大于小根堆的数据的情况下,更新小根堆,而此时的堆结构可能不在满足小根堆的设定,需要调整堆结构,重新建立小根堆,才能够保持根节点的值最小。因此,本方案相对于堆排序具有计算方法简单,快速的优点。
93.在其中一个实施例中,步骤s105之后还包括对目标排行榜排序,生成的排行榜的步骤,还具体包括s106和s107。
94.如图4所示,s106:对目标排行榜中的数据元素进行顺序排序。
95.其中,经过遍历第二数据元素集中的数据元素形成的初始排行榜,即为目标排行榜,但是,由于在形成目标排行榜的过程中,对第一数据元素集中的数据仅相应的进行更新,并未排序,导致生成的目标排行榜中的数据元素并非顺序排布的,因此,需要再对目标排行榜中的数据元素进行顺序排序。以保证目标排行榜中的数据元素是按照由大到小或由小到大的顺序排序的。
96.s107:基于顺序排序结果,并更新目标排行榜。
97.其中,由于目标排行榜中的数据较少,因此,选用何种方式并不会对最终生成目标排行榜产生较大影响,例如,可以使用选择排序和快速排序等排序方法对目标排行榜中的数据元素进行顺序排序,选用何种方法排序本方案并不加以限定。
98.需要说明地是,生成的目标排行榜为了规整和/或排序,可对其包括的数据元素进行对齐,再进行顺序排序。
99.在其中一个实施例中,步骤s1052在更新第一极值数据的情况下,还进行了存储空间的更新,具体包括s10521至s10522。
100.如图5所示,s10521:根据第一极值数据更新的结果,舍弃该第一极值数据。
101.s10522:更新第一数据元素集,存储空间存储与该第一极值数据比对的数据元素。
102.其中,舍弃该第一极值数据的情况下,释放第一极值数据代表的数据元素所占用的存储空间,该存储空间用于存放与该第一极值数据比对的数据元素占。
103.本实施例中,通过释放元第一极值数据代表的数据元素占用的存储空间,来存放与该第一极值数据比对的数据元素,并且,本方案仅需要存储第一数据元素集的存储空间即可,无需开辟用于存储大数据所包含的数据元素的存储空间,能够节省大量的存储空间。
104.如图6所示,上述方法在实际应用中可通过下述具体实施例来说明:
105.1000万条大数据保存在链表list(列表)中,list中单个数据用element(要素)表示,选取大数据中的最大值排行榜top200,通过如下步骤实现:
106.s201:在大数据中选取200条数据,形成第一数据元素集,建立初始排行榜。
107.s202:在第一数据元素集中选取最小值min的数据元素,并对数据元素标索引index。
108.s203:遍历除选取的200条数据之外的list,将element与min进行比较;若element》min,执行s204;若element≤min,执行s205。遍历完成即结束更新。
109.s204:若element》min,则根据index索引更新第一数据元素集的最小值,更新完最小min后,重新计算min和index的值。继续执行步骤s203。
110.s205:若element≤min,说明该数据小于top数组中的所有值,直接舍弃该数据element。继续执行步骤s203。
111.s206:list遍历完成后,第一数据元素集中保存的数据元素均满足list中前200的要求,对第一数据元素集中保存的数据元素对齐在排序一次即可得到排行榜top200。
112.综上所述,前述的内容用以计算大数据中的最大的top排行榜,当计算最小top排行榜的情况下,其计算方法与计算最大的top排行榜的算法步骤相同,算法相反,按最大值max计算,此处不予赘述。
113.本发明还提供一种生成大数据排行榜的方法的装置,应用前述的生成大数据排行榜的方法,具体包括:
114.建立单元,用于选取大数据中与排名数量相同的第一数据元素集,作为初始排行榜,其中,排名数量为目标排行榜中容纳的数据数量;
115.存储单元,用于建立与第一数据元素集对应的存储空间,用以存储第一数据元素集;
116.确定单元,用于基于初始排行榜,确定该初始排行榜中的第一极值数据,其中,第一极值数据,表征第一数据元素集中的最小值的数据元素;
117.比对单元,用于将第二数据元素集中的数据元素与第一极值数据比对,基于预设的比对规则,确定比对结果,其中,第二数据元素集,表征大数据中除第一数据元素集之外的数据元素;
118.生成排行榜单元,用于根据比对结果,生成目标排行榜。
119.本发明还提供一种计算机可读存储介质,该存储介质存储可执行指令,可执行指令在被处理器执行时,导致如上述的生成大数据排行榜的方法的执行。
120.本发明还提供一种电子设备,电子设备包括处理器和存储器,存储器中存储有至少一条指令或至少一段程序,至少一条指令或至少一段程序由处理器加载并执行以实现如上述的生成大数据排行榜的方法。
121.应理解,上述方法实施例的各步骤可以通过处理器中的硬件形式的逻辑电路或者软件形式的指令完成。
122.可以理解地是,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。此外,在一些可能的实现方式中,上述实施例中的各步骤可以根据实际情况选择性执行,可以部分执行,也可以全部执行,此处不做限定。
123.可以理解地是,本技术的实施例中的处理器可以是中央处理单元(centralprocessing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signalprocessor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、晶体管逻辑器件,硬件部件或者其任意组合。通用处理器可以是微处理器,也可以是任何常规的处理器。
124.本技术的实施例中的方法步骤可以通过硬件的方式来实现,也可以由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(random access memory,ram)、闪存、只读存储器(read-only memory,rom)、可编程只读存储器(programmable rom,prom)、可擦除可编程只读存储器(erasable prom,eprom)、电可擦除可编程只读存储器(electrically eprom,eeprom)、寄存器、硬盘、移动硬盘、cd-rom或者本领域熟知的任何其它形式的存储介质中。
125.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本技术实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者通过计算机可读存储介质进行传输。计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘(solid state disk,ssd))等。
126.最后说明的是:以上实施例仅用以说明本技术的技术方案,而对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献