基于spark的微博数据分析

基于spark的微博数据分析

project-1

image-20210310205159319

主要数据介绍

  • 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服务端,每隔几秒请求数据库获取数据,数据库信息在不断更新,前台数据就动态展现,对于流式处理可以将结果不断写入数据库,服务端不断发送数据库信息,前台动态演示。

image-20210310212250504

前端展示

使用echart工具使数据可视化

image-20210310210122799

数据分析结果演示

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

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

image-20210310210656735

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

image-20210310210738670

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

image-20210310210924759

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

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

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

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

image-20210310211324532

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

取发布设备,用sparksql 进行wordcount

image-20210310211449920

image-20210310211514230

  • 11
    点赞
  • 103
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 12
    评论
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ROJS

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值