bigdata_舆情挖掘项目

一.公司项目开发特点:

标准的项目开发的时间配比
开发前工作:开发=7:3
互联网公司招人用人做项目的潜规则
招3个人,干5个人的活,给4个人的钱。
项目需求概述
解决什么问题
用户需求->系统需求
输出:prd,产品需求文档
甲方自己写:此要求甲方比较专业
乙方自己写:甲方口述需求,乙方进行整理。
输入:甲方的工作人员表达的需求内容
二.项目需求概述

    1.概念:

做什么事情(宏观描述)

为什么要做(讲清楚原因和价值)

从业务逻辑角度,讲清楚要如何做(微观细节说明,产出prd文档,即Product Requirement Document)

明确阶段目标(里程碑,milestone)和验收标准(干成什么样子算ok)

过程管理与风险控制

    2.作用:

准确勾勒和描绘用户的问题
便于用户方、需求方、开发者三方沟通交流
开发人员工作的基础和依据
确认测试和验收的依据
产品和开发互相撕逼的依据
3.本项目需求说明书

做什么事情( 宏观描述)

给定一批微博博文数据,构建到hive数据仓库中,挖掘出数据的热点关键词,并能在web页面中显示。
为什么要做(讲清楚原因和价值)

迅速捕捉社交网络内热词,可以作为新闻素材、视频推荐、商品推荐等依据。
从业务逻辑角度,讲清楚要如何做(微观细节说明,产出prd文档,即Product Requirement Document)

给定具有时间连续性的微博文章不低于100万条即可,实际给出2.2亿条。(csv格式)
将文本文件导入到hive的指定微博内容表中
通过nlp(nature language process)分词处理,将一条一条的博文拆解成一个一个的词序列(Term Sequene)。
输入博文
输出词序列
对词序列中的全部元素做词频统计(Term Frequence Statistic)

对词统统计结果做倒排输出,得到舆情热词
将数据推送到mysql指定数据表中

搭建java web项目,在前端页面中调用后端的数据接口,将数据返回到前端中。

在前端调用绘图插件,将舆情热词用比较炫的方式显示出来。

明确阶段目标(里程碑)和验收标准(干成什么样子算ok)

过程管理与风险控制。

用户需求->系统需求

三.项目需求分析

1.概念:

标准定义
把软件计划期间建立的软件可行性分析求精和细化,分析各种可能的解法,并且分配给各个软件元素。
是软件定义阶段中的最后一步,是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。
简化定义
根据PRD文档,从技术层面,去分析项目的模块组成、技术实现、过程管理、风险控制,并确定项目的可行性。
2.作用:

将技术可行性、技术实现难点、工作量、人员分配统筹分析和安排。
为项目研发周期评估和人员按排提供依据
极大的降低项目失败风险
   

3.本项目需求分析说明书

 

 三.技术方案与开发计划

1.技术方案

     1.1概念:为解决各类具体技术问题,而提出的系统的解决方法。

      1.2评价技术方案的合格:

     清晰、系统的获取到该技术问题的具体解决方法,并有相应的可行性。

      1.3本项目的技术方案-数据类开发

     

 

2. 开发计划

     2.1概念:

对项目开发进行拆解拆分成相关的模块或技术点,并将其与岗位及其对应的责任人进行匹配对应,并设置相应的限制参数,如开发时间、开始时间、结束时间、负责人、状态等字段,便于项目开发过程中的代码开发、分工协作、进度管控、风险管理。
    2.2评价开发计划的合格:

模块拆分清晰、任务分工明确、进度安排合理,具备一定的可执行性

   2.3:本项目的开发计划

 

四.开发细节与风险控制

1.确定源数据文件集合

来源渠道
渠道选择
确定数据集
确定数据文件格式
确定数据结构及Demo数据查看
洞查数据本身
总大小
总文件个数或者说平均文件大小
总记录条数
可预见的最大/最小文件记录数
2.洞查数据本身

将数据传输到hadoop客户端机器中,为数据传输到hive仓库做准备。

总大小

掌握计算方法

准确计算法:看到全部数据后,通过命令求实际大小。

评估计算法:通过对部分数据做精细化计算,然后推导到全局数据。

总文件个数或者说平均文件大小

掌握计算方法

总记录条数

掌握计算方法

可预见的最大/最小文件记录数

掌握计算方法

2.将源数据装载到hive仓库

流程:

zip原始数据批量解压
在hive中创建weibo_origin和weibo_product两张同构表
将解压完的明文每天数据文件,按天load到weibo_origin载入原始数据层
数据检验与校正
清洗原始数据表weibo_origin,按天分区插入到weibo_product表中
zip原始数据批量解压:

ls weibo/*.zip | xargs -n1 unzip -d weibo_text/

在hive中创建weibo_origin和weibo_product两张同构表:

#! /bin/bash
 
db_name=liyingjie
 
hive -e "
  use $db_name;
  CREATE external TABLE weibo_origin(
mid string,
retweeted_status_mid string,
uid string,
retweeted_uid string,
source string,
image string,
text string,
geo string,
created_at string,
deleted_last_seen string,
permission_denied string
)
comment 'weibo content table'
partitioned by (day_seq string comment 'the day sequence')
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n'
STORED AS textfile;
"
 
 
#! /bin/bash
 
db_name=liyingjie
 
hive -e "
  use $db_name;
  CREATE TABLE weibo_product(
mid string,
retweeted_status_mid string,
uid string,
retweeted_uid string,
source string,
image string,
text string,
geo string,
created_at string,
deleted_last_seen string,
permission_denied string
)
comment 'weibo content table'
partitioned by (day_seq string comment 'the day sequence')
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n'
STORED AS orcfile;
"
数据按天分区载入weibo_origin表:

#! /bin/bash
 
#定义相关变量参数
db_name=liyingjie
csv_root_dir_local=../data/csv_data_dir/
csv_root_dir_hdfs=/tmp/liingjie/weibo_data_dir/
table_name=weibo_origin
 
#编程实现,将一个csv目录当中的所有csv文件批量加载到hive的指定表的分区当中
csv_file_list=`ls $csv_root_dir_local""*.csv`
#echo $csv_file_list
 
#遍历本地获取到的csv文件集合
for file_path in $csv_file_list;do
  #echo $file_path
  #将本地csv文件上传到hdfs目录当中
  hdfs dfs -put -f $file_path $csv_root_dir_hdfs
 
  #将hdfs的csv文件load到hive表的指定分区
  #首先获取到文件的名称,即获取到指定文件的日期
  day_seq=`echo $file_path | awk -F '/' '{print $NF}' | cut -d '.' -f1`
  echo $day_seq
  hive -e "
     use $db_name;
     load data inpath '$csv_root_dir_hdfs$day_seq.csv' overwrite into table
     $table_name partition(day_seq='$day_seq');
  "
done
执行脚本:sh load_to_weibo_origin.sh

3.UDF编写

词统统结果做倒排输出,得到舆情热词

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值