任务二 人物类与娱乐类关联优化分析

任务二 人物类与娱乐类关联优化分析

标签(空格分隔): 一找


任务描述

根据人物ID,娱乐ID,关联两类在界面显示。
具体方案为:
1.根据娱乐类节目的相关人员:导演、演员、编剧的人物名字(t_movie_douban表) 在人物类(t_people_baike_info) 中文名、英文名、别名 进行查找。
2.可根据娱乐类节目 的名称、年份、导演等信息在yeezhao_dolphin_baike hbase表进行匹配检索。
hbase 表:
yeezhao_dolphin_baike
rowkey | crawl:text
baike|17744 | 网页html内容
3.人物ID、娱乐ID关系输出内容写在mysql t_people_movie2表里。

实现方案

  1. 用正则表达式对名字进行处理,把所有多余字符(一些标点符号)都转成#,最后再统一去掉
    分为两个方法:
  • parseMovieTableName 处理电影表人物姓名
  • parsePeopleTableName 处理人物表人物姓名
  1. 把人物表的人物姓名读入一个HashMap peopleTable中, key是人物姓名, value是人物信息结构体。

  2. 将电影表的人物姓名放入一个RDDmovieRDD

  3. 遍历电影人物表movieRDD,每遍历一个名字就去peopleTable中查找,如果找到,则建立联系

代码

代码位于com.yeezhao.dolphin.crawler.people下的PeopleEntertainRelationCrawler

遇到问题

  1. 出来的结果表有很多空名字或者数字名字

原因:
1)人物表、电影表各有一套处理名字的规则,人物表不小心调用了电影表的规则,导致很多人名没有被正确处理。

2)电影表中有些名字带括号,而括号之间有空格,我没有去除那些空格,导致空格被加入hashmap

解决方法是 对每个解析完的token再trim一次

详情见 任务 人物与娱乐类关系表问题跟进

原文地址:https://www.cnblogs.com/wacc/p/5038507.html