法律网推荐(二) 用Pig进行数据预处理
2016-12-24 21:06
183 查看
上接法律网推荐(一) 用Hive进行数据探索分析
3)数据预处理
1. 数据清洗
2. 数据变换
3. 属性规约
通过上述网址类型分布分析,后续分析中,选取其中占比最多的两类(咨询内容页、知识内容页)进行模型分析。可以发现一些与分析目标无关的数据清洗规则:
实验内容:数据清洗,数据变换,属性规约
实验步骤:
1、 删除无点击.html行为的用户记录,统计删除记录及剩余记录数。
2、基于步骤1的结果,删除中间类型网页(带有midques_关键字),统计删除记录及剩余记录数。
3、基于步骤2的结果,删除网址中带有“?”类型数据,统计删除记录及剩余记录数。
4、基于步骤3的结果,删除法律快车-律师助手记录,页面标题包含“法律快车-律师助手”关键字,统计删除记录及剩余记录数。
5、 基于步骤4的结果,筛选模型所需数据(咨询与知识页面数据),统计删除记录及剩余记录数。
6、基于步骤5的结果,删除重复数据(同一时间同一用户,访问相同网页),统计删除记录及剩余记录数。
7、将步骤1-5的处理结果输出到HDFS。
3)数据预处理
1. 数据清洗
2. 数据变换
3. 属性规约
通过上述网址类型分布分析,后续分析中,选取其中占比最多的两类(咨询内容页、知识内容页)进行模型分析。可以发现一些与分析目标无关的数据清洗规则:
实验内容:数据清洗,数据变换,属性规约
实验步骤:
1、 删除无点击.html行为的用户记录,统计删除记录及剩余记录数。
2、基于步骤1的结果,删除中间类型网页(带有midques_关键字),统计删除记录及剩余记录数。
3、基于步骤2的结果,删除网址中带有“?”类型数据,统计删除记录及剩余记录数。
4、基于步骤3的结果,删除法律快车-律师助手记录,页面标题包含“法律快车-律师助手”关键字,统计删除记录及剩余记录数。
5、 基于步骤4的结果,筛选模型所需数据(咨询与知识页面数据),统计删除记录及剩余记录数。
6、基于步骤5的结果,删除重复数据(同一时间同一用户,访问相同网页),统计删除记录及剩余记录数。
7、将步骤1-5的处理结果输出到HDFS。
步骤1-----无.html点击行为的用户记录统计(删除无点击.html行为的用户记录,统计删除记录及剩余记录数)
law = load '/root/law_utf8.csv' using PigStorage (','); law_filter = filter law by not ($10 matches '.*\\.html'); law_grp = group law_filter all; count_num = foreach law_grp generate COUNT (law_filter) as delete_num,(837450-COUNT (law_filter)) as remain_num; set job.name 'law_filter';
dump count_num;
步骤2: --------中间类型网页统计 law_filter = filter law by $10 matches '.*\\.html' and not ($10 matches '.*midques_.*'); law_grp = group law_filter all; count_num = foreach law_grp generate (671769-COUNT (law_filter)) as delete_num, COUNT (law_filter) as remain_num; set job.name 'law_mid'; dump count_num; 结果:2036,669733 步骤3: --------访问网址中带有?的记录统计 law_filter = filter law by $10 matches '.*\\.html' and not ($10 matches '.*midques_.*') and not ($10 matches '.*\\?.*'); law_grp = group law_filter all; count_num = foreach law_grp generate (669733-COUNT (law_filter)) as delete_num, COUNT (law_filter) as remain_num; set job.name 'law_mark'; dump count_num; 结果:52,669681 步骤4: -------页面标题包含法律快车-律师助手统计 law_filter = filter law by $10 matches '.*\\.html' and not ($10 matches '.*midques_.*') and not ($10 matches '.*\\?.*') and not ($13 matches '.*法律快车-律师助手.*'); law_grp = group law_filter all; count_num = foreach law_grp generate (669681-COUNT (law_filter)) as delete_num, COUNT (law_filter) as remain_num; set job.name 'law_kuaiche'; dump count_num; 结果:(11,669670) 步骤5: -------筛选模型所需数据(咨询与知识页面数据) 注意:为了使用SUBSTRING()方法,需注册piggybank.jar包。 register pig安装目录/lib/piggybank.jar law_filter = filter law by $10 matches '.*\\.html' and not ($10 matches '.*midques_.*') and not ($10 matches '.*\\?.*') and not ($13 matches '.*法律快车-律师助手.*') and (SUBSTRING($11,0,3) == '101' or SUBSTRING($11,0,3) == '107'); law_grp = group law_filter all; count_num = foreach law_grp generate (669670-COUNT (law_filter)) as delete_num, COUNT (law_filter) as remain_num; set job.name 'law_model'; dump count_num; 结果:100460,569210 步骤6: -------重复记录统计 注意:为了使用SUBSTRING()方法,需注册piggybank.jar包。 register pig安装目录/lib/piggybank.jar law_filter = filter law by $10 matches '.*\\.html' and not ($10 matches '.*midques_.*') and not ($10 matches '.*\\?.*') and not ($13 matches '.*法律快车-律师助手.*') and (SUBSTRING($11,0,3) == '101' or SUBSTRING($11,0,3) == '107'); law_dist_field = foreach law_filter generate $4 ,$7,$10; law_distinct = distinct law_dist_field; law_grp = group law_distinct all; count_num = foreach law_grp generate (569210-COUNT (law_distinct)) as delete_num, COUNT (law_distinct) as remain_num; set job.name 'store_extract'; dump count_num; 结果:(14057,555153) 步骤7: -------将步骤1-5清洗结果输出HDFS 注意:为了使用SUBSTRING()方法,需注册piggybank.jar包。 register pig安装目录/lib/piggybank.jar law_filter = filter law by $10 matches '.*\\.html' and not ($10 matches '.*midques_.*') and not ($10 matches '.*\\?.*') and not ($13 matches '.*法律快车-律师助手.*') and (SUBSTRING($11,0,3) == '101' or SUBSTRING($11,0,3) == '107'); set job.name 'store_result'; store law_filter into '/data/out' using PigStorage(',');
相关文章推荐
- 法律网推荐(一) 用Hive进行数据探索分析
- 对网页文章进行采集(适合小说采集)[第二次编辑] 推荐
- 使用Python进行二进制文件读写的简单方法(推荐)
- 使用LFM(Latent factor model)隐语义模型进行Top-N推荐
- 运维老鸟谈生产场景如何对linux系统进行分区? -- 老男孩推荐
- 【推荐系统系列】使用LFM(Latent factor model)隐语义模型进行Top-N推荐 (转载)
- 根据用户行为进行个性化的推荐
- OpenCV基于傅里叶变换进行文本的旋转校正 推荐
- 话里话外:莫让数据毁了ERP(下)---如何进行数据管理? 推荐
- 关于SAP的SD的定价公式的资料(强力推荐,有时间我会进行翻译)
- 使用TextMate进行Ruby On Rails开发推荐插件
- 一、工具的使用 1、学会使用vim/emacs,vim/emacs是linux下最常用的源码编辑具,不光要学会用它们编辑源码,还要学会用它们进行查找、定位、替换等。新手的话推荐使用vim,这也是我目
- aptana 采用link方式(以后安装插件都用link安装)进行本地安装(推荐用此方法)
- 重提URL Rewrite(2):使用已有组件进行URL Rewrite 推荐
- 机器学习讲座,如何利用Spark MLlib进行个性推荐?
- 用ESX进行虚拟化的技巧连载二:VI运行基础架构服务 推荐
- 用ESX进行虚拟化的技巧连载四:文件和打印服务虚拟化 推荐
- 推荐使用maven shade进行打包,assembly打包会出现若干问题
- 如何利用Spark MLlib进行个性推荐?
- @Autowired的使用:推荐对构造函数进行注释