一种节目排序方法及装置的制造方法_3

文档序号:9567483阅读:来源:国知局
该电视剧集的一次点播,避免了电视剧集的点播 次数过高而造成其得分偏高。
[0060] 上述的节目排序方法,其中,所述方法基于化doop大数据平台来实现;所述获取 当前上线的所有节目的节目数据可W具体为:在所述化doop大数据平台上,通过多个并行 的Map处理流程及多个并行的Re化Ce处理流程获取当前上线的所有节目的节目数据;所述 计算所述节目的得分可W具体为;通过所述多个并行的Map和Re化Ce处理流程,分别根据 每一节目的上线天数及点播次数,计算节目的得分。
[0061] 由于上线的节目的数量通常是非常大的,节目的数据通常为海量数据,因此可W 采用化doop大数据平台进行节目的排序,化doop大数据平台提供了一种能够对大量数据 进行分布式处理的框架,其核必为化doop分布式文件系统h壯S及MapRe化Ce,其中,Mfs 为海量数据提供了存储,而MapRe化Ce为海量数据提供了计算,采用化doop大数据平台,提 高了对海量节目数据进行处理的性能,能在较短时间内实现对节目的排序。
[0062] 整个处理过程可W由一连串的化doop作业来实现。化doop作业又可分为Map和 Re化Ce两个处理流程。在下述的作业流程中,如果没有特别说明方法名称,则Map指的是 Map方法的处理流程,Re化Ce指的是Re化Ce方法的处理流程。
[006引作业一对节目数据进行预处理,把新上线节目的增加到缓存中,把下线的节目从 缓存中删除掉。
[0064] Map的输入为节目数据
[0065] 节目数据被定时同步给大数据平台,其中包含对节目的增加及删除操作。Map的输 入数据包括当天同步过来的数据W及h壯S中的历史数据,h壯S中的历史数据保留的天数 可W配置。
[0066] 每条节目数据包含但不限于如下表1所示:
[0067]
[0068] 表 1
[0069] Map的输出如下表2所不
[0070]
[0071] 表 2
[0072] Map输出经过化doop默认处理,成为Re化Ce的输入,后面不再赏述。
[0073] Reduce输入如下表3所示:
[00巧]表3
[0076]其中,IinelIIinenumberl,line2Ilinenumber2,...是Map输出时key相同的所 有value的一个集合。
[0077] Re化Ce处理过程如下:
[0078] 在Re化Ce方法中,对当天同步过来的每条数据按照行号(即操作先后顺序)对节 目数据进行升序排序,操作类型为增加的节目(即新上线的节目)则将其增加到历史节目 数据中,操作类型为删除的节目(即下线的节目)则将其从历史节目数据中删除;
[0079] 把经过增删操作后的历史节目数据,写回到h壯S中作为当前上线的节目数据,供 下一次本作业使用及本次作业的后续作业使用;
[0080] 如果是电视剧单集,则W电视剧单集的节目编号为key,电视剧剧头的节目编号为 value组成一个键值对,写到h壯S中供后续作业使用。
[0081] 作业二:用户观看记录处理,从IPTV话单中,获取用户卡号、节目编号、用户观看 该节目的时间及节目类型字段,计算节目得分;同样Map输入的话单数据,包括当天同步过 来的换单和历史话单,历史话单保留的天数可W配置。
[0082] Map的输入;用户观看记录
[0083] 每条话单包含但不限于如下表4所示:
[0085] 表 4
[0086] Map的处理过程如下:
[0087] 在Map方法中,从每行话单数据中,取出用户卡号,节目编号,用户观看该节目的 起始时间,节目类型字段;
[0088] 根据节目编号,从h壯S中获取该节目的其他信息,来判断此节目是否为电视剧类 型。
[0089] 如果不是电视剧集,则一条用户观看记录对应的的观看次数为1次;
[0090] 如果是电视剧单集,则从缓存中获取该单集对应的剧集的节目编号,把单集的节 目编号contentcode换成电视剧集的节目编号,节目类型换成电视剧集的节目类型,在Map 中暂不计算该单集的观看次数,直接把剧集信息写入Re化Ce中。
[00川 Map的输出:
[0092] 如果不是电视剧,则输出如下表5所示:
[0094]表 5[0095] 如果是电视剧,则输出如下表6所示[0096]
[0093]
[0097]表 6
[009引其中,电视剧中的contentcode为电视剧集的节目编号,param2为电视剧头的类 型,begintime为截取的W天为单位的观看时间。
[0099] Re化Ce输入如下表7及表8所不:
[0103] 表 8
[0104] Re化Ce处理过程如下:
[0105] 在Re化Ce类创建一个成员变量List用于保存最终输出的节目信息;
[0106] 对于每条数据,根据不同的Param2Iccontentcode组合,如果param2不是电视剧 头,则遍历list数据相加,获得此节目的被观看次数;
[0107] 如果是电视剧头,则计算begintime:ca;r化O的数量,同一个begintime:ca;r^o出 现多次的算一次,即一部电视剧在同一天中被同一个用户观看多次的,只算一次,的出电视 剧的被观看次数。
[010引根据节目号,从h壯S中获取此节目的信息,从节目信息中获取节目上线时间,计 算此节目的上线天数T,取所配置的点播次数的权重;0. 8,上线天数的权重;0. 2,衰减率: 0.01,计算此节目的得分;
[0109] 每一次Reduce方法计算出一个节目的得分后,存入Reduce类的list中,当list 数量大于1000时,对list进行一次按分数高低进行的倒叙排序,删除排在1000后面的节 画;
[0110] 输出list中的1000个节目,作为得分最高的1000个节目;
[0111] Re化Ce输出;按照得分先后顺序,输出每个节目的详情数据,供机顶盒查询。
[0112] 在化doop大数据平台上对IPTV的节目进行排序的流程如图5所示,包括:
[0113] 步骤S500,读入IPTV同步过来的节目数据,其中,节目数据中包括节目的上线时 间;
[0114] 步骤S502,读入化doop分布式文件系统h壯S中的历史节目数据;
[0115] 步骤S504,根据同步过来的节目数据的操作类型,对历史节目数据进行增删操 作;
[0116] 步骤S506,将处理后的节目数据写回h壯s,对于其中的电视剧单集节目,将该单 集与电视剧集的对应关系写入hdfS;
[0117] 步骤S508,读入IPTV话单数据,该话单数据中包括用户的观看记录信息;
[0118] 步骤S510,根据IPTV话单数据,确定每个上线节目的点播次数;
[0119] 步骤S512,根据每个节目的点播次数及上线天数,计算节目的得分;
[0120] 步骤S514,根据节目的得分,对节目进行排序;
[0121] 步骤S516,输出得分最高的N个节目,其中,N可W由用户进行配置。
[0122] 本发明还提供了一种节目排序装置,包括:获取模块,用于获取当前上线的所有节 目的节目数据,所述节目数据包括节目的上线天数
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1