基于spark的微博数据分析

文章目录

  • 主要数据介绍
  • 数据分析
    • 项目构建
    • 前端展示
    • 数据分析结果演示
      • 微博内容热词统计(房价话题)(Fangjia_hotwords.scala)
      • 统计数据中粉丝数量前20的微博用户(Fans_analysis.scala)
      • 微博中国各个省份人口分布统计(PopulationDistribution.scala)
      • 某一话题下微博发布时间分布情况 (Timedistribution.scala)
      • 统计微博发布设备(前8个)(ClientAnalysis.scala)

基于spark的微博数据分析

基于spark的微博数据分析_第1张图片

主要数据介绍

  • sql文件
  • weibodatabase.sql :原始数据
  • weibo_analysis.sql:分析结果数据

用户信息表

user(用户表)
字段 注解
uid 用户id
screen_name 昵称
name 用户姓名
province 省份
city 市区
location 地区(县)
url 微博主页链接
gender 性别
followsnum 粉丝数
friendsnum 关注(他人)数
statusenum 用户微博数
favouritesnum 用户收藏数
created_at 用户创建时间

省份编码表

bianma(微博省份编码映射)
字段 注解
Provinc 编码
Zhongwen 对应省份中文

微博内容表

weibo(微博表)
字段 注解
mid 微博id
data 微博发表日期
text 微博内容
source 发表来源(平台终端)
reopstnum 转发数
commentsnum 评论数
attitudesnum 点赞数
uid 用户id
topic 微博相关主题

数据分析

项目构建

使用java程序实现websocket服务端,每隔几秒请求数据库获取数据,数据库信息在不断更新,前台数据就动态展现,对于流式处理可以将结果不断写入数据库,服务端不断发送数据库信息,前台动态演示。

基于spark的微博数据分析_第2张图片

前端展示

使用echart工具使数据可视化

数据分析结果演示

微博内容热词统计(房价话题)(Fangjia_hotwords.scala)

从数据库获取微博内容数据为dataframe,并将其写入kafka,然后用structured streaming进行热词统计,其中用hanlp工具包 进行分词,统计机构名nt,地名ns, 人名nr, 形容词a

基于spark的微博数据分析_第3张图片

统计数据中粉丝数量前20的微博用户(Fans_analysis.scala)

基于spark的微博数据分析_第4张图片

微博中国各个省份人口分布统计(PopulationDistribution.scala)

基于spark的微博数据分析_第5张图片

某一话题下微博发布时间分布情况 (Timedistribution.scala)

主要是计算某一话题下一条微博的所在时间段的数量,分为8个时段

从date中提取小时数,根据小时数所在的区间对应到相应的时间段统计数量,再算成比例

一天以24小时计 对应的时间段
0-5 凌晨
5-7 早上
7-11 上午
11-13 中午
13-17 下午
17-19 傍晚
19-23 晚上
23-0 深夜

基于spark的微博数据分析_第6张图片

统计微博发布设备(前8个)(ClientAnalysis.scala)

取发布设备,用sparksql 进行wordcount

基于spark的微博数据分析_第7张图片

基于spark的微博数据分析_第8张图片

你可能感兴趣的:(spark,spark,kafka,java,数据分析,网络)