【技术经验分享】计算机毕业设计hadoop+spark知识图谱医生推荐系统 门诊人数预测 医疗数据可视化 医疗大数据 医疗数据分析 医生爬虫 大数据毕业设计 大数据毕设

2023-11-15

开发技术

springboot
vue.js
element-ui
spark
hadoop
lstm情感分析模型
KNN/CNN卷积神经/线性回归
协同过滤算法(用户+物品)
MLP神经网络
SVD深度学习模型
echarts
python爬虫
mysql
neo4j

创新点

修改密码短信接收验证码
4种深度学习/机器学习推荐算法
深度学习预测算法
百度AI识别
支付宝沙箱支付
数据可视化大屏
知识图谱推荐/可视化
支付宝沙箱支付
医生评论情感分析
30+种创新点

代码分析

爬虫代码

#!/usr/bin/env python3
# coding=utf-8

import requests
import json
import pymysql

# 数据库配置信息
host="bigdata"
port=3306
user="root"
password="123456"
#database="MetroSwiping"
database="MetroData"
timer = 5  # 连接失败后重连的间隔时长,单位秒

# API配置信息
appKey="3ef4a029a8fe405a94c2c97d977dc2f9"
rows = 500
# 总数据量 1337000,每页500条的话共计2674页
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36",
}

数据分析分析代码

package com.metroData;

import org.apache.flink.configuration.Configuration;
import org.apache.flink.table.api.EnvironmentSettings;
import org.apache.flink.table.api.TableEnvironment;

/**
 * 数据查询语言DQL,select操作
 * 数据操纵语言DML,insert delete update操作
 * 数据定义语言DDL,创建表、视图、索引等操作
 * 数据控制语言DCL,赋权、回滚、提交等操作
 */

//  先有原始数据Source    对数据进行处理 trans  将处理好的数据发送到mysql   sink
public class RealtimeAnalysis {
    public static void main(String[] args) throws InterruptedException {

//        执行环境
        EnvironmentSettings settings = EnvironmentSettings.newInstance().inStreamingMode().build();
        TableEnvironment tableEnv= TableEnvironment.create(settings);

//      FlinkSQL 数据Sink到Mysql时,非空存在null值,插入mysql报错,配置下面的参数进行解决:
        Configuration configuration = tableEnv.getConfig().getConfiguration();
        configuration.setString("table.exec.sink.not-null-enforcer","drop");

//        创建source表
        String kafkaSource = "CREATE TABLE MetroSwipingData (\n" +
                "    card_no VARCHAR,\n" +
                "    deal_date VARCHAR,\n" +
                "    deal_type VARCHAR,\n" +
                "    deal_money DECIMAL(16,2),\n" +
                "    deal_value DECIMAL(16,2),\n" +
                "    equ_no VARCHAR,\n" +
                "    company_name VARCHAR,\n" +
                "    station VARCHAR,\n" +
                "    car_no VARCHAR,\n" +
                "    conn_mark VARCHAR,\n" +
                "    close_date VARCHAR\n" +
                ") WITH (\n" +
                "    'connector' = 'kafka',\n" +
                "    'topic' = 'MetroSwipingData',\n" +
                "    'properties.bootstrap.servers' = 'bigdata:9092',\n" +
                "    'properties.group.id' = 'testGroup123',\n" +
                "    'scan.startup.mode' = 'earliest-offset',\n" +
                "    'format' = 'json',\n" +
                "    'json.fail-on-missing-field' = 'false',\n" +
                "    'json.ignore-parse-errors' = 'true'\n" +
                ")";

//        sink测试打印到控制台
        String sinkPrint = "CREATE TABLE sinkPrint (\n" +
                "  station STRING,\n" +
                "  amount DECIMAL(16,2)\n" +
                ") WITH (\n" +
                "   'connector' = 'print'\n" +
                ")";

//        创建Sink表,连接到MySQL,每个站的累计营收额
        String sink_station_amount = "CREATE TABLE station_amount (\n" +
                "  station STRING,\n" +
                "  amount DECIMAL(16,2),\n" +
                "  PRIMARY KEY (station) NOT ENFORCED\n" +
                ") WITH (\n" +
                "   'connector' = 'jdbc',\n" +
                "   'url' = 'jdbc:mysql://bigdata:3306/report?useSSL=false&useUnicode=true&characterEncoding=utf-8',\n" +
                "   'table-name' = 'station_amount',\n" +
                "   'username' = 'root',\n" +
                "   'password' = '123456',\n" +
                "   'connection.max-retry-timeout' = '60s',\n" +
                "   'sink.max-retries' = '3',\n" +
                "   'lookup.max-retries' = '3'\n" +
                ")";

//        创建Sink表,连接到MySQL,每个站的出入站人数
        String sink_station_peopleNum = "CREATE TABLE station_peopleNum ( \n" +
                "station STRING, \n" +
                "enterNum INT, \n" +
                "outNum INT, \n" +
                "PRIMARY KEY (station) NOT ENFORCED \n" +
                ") WITH ( \n" +
                "'connector' = 'jdbc', \n" +
                "'url' = 'jdbc:mysql://bigdata:3306/report?useSSL=false&useUnicode=true&characterEncoding=utf-8', \n" +
                "'table-name' = 'station_peopleNum', \n" +
                "'username' = 'root', \n" +
                "'password' = '123456', \n" +
                "'connection.max-retry-timeout' = '60s', \n" +
                "'sink.max-retries' = '3', \n" +
                "'lookup.max-retries' = '3' \n" +
                ")";

//        创建Sink表,连接到MySQL,每条线路的营收额
        String sink_line_amount = "CREATE TABLE line_amount ( \n" +
                "line STRING, \n" +
                "amount DECIMAL(16,2),\n" +
                "PRIMARY KEY (line) NOT ENFORCED \n" +
                ") WITH ( \n" +
                "'connector' = 'jdbc', \n" +
                "'url' = 'jdbc:mysql://bigdata:3306/report?useSSL=false&useUnicode=true&characterEncoding=utf-8', \n" +
                "'table-name' = 'line_amount', \n" +
                "'username' = 'root', \n" +
                "'password' = '123456', \n" +
                "'connection.max-retry-timeout' = '60s', \n" +
                "'sink.max-retries' = '3', \n" +
                "'lookup.max-retries' = '3' \n" +
                ")";

//        创建Sink表,连接到MySQL,每天的客运量
//        String sink_data_peopleNum = "CREATE TABLE data_peopleNum ( \n" +
//                "dt STRING, \n" +
//                "peopleNum BIGINT,\n" +
//                "PRIMARY KEY (dt) NOT ENFORCED \n" +
//                ") WITH ( \n" +
//                "'connector' = 'jdbc', \n" +
//                "'url' = 'jdbc:mysql://bigdata:3306/report?useSSL=false&useUnicode=true&characterEncoding=utf-8', \n" +
//                "'table-name' = 'data_peopleNum', \n" +
//                "'username' = 'root', \n" +
//                "'password' = '123456', \n" +
//                "'connection.max-retry-timeout' = '60s', \n" +
//                "'sink.max-retries' = '3', \n" +
//                "'lookup.max-retries' = '3' \n" +
//                ")";

//        创建Sink表,连接到MySQL,累计营收额
        String sink_total_amount = "CREATE TABLE total_amount ( \n" +
                "id INT,\n" +
                "total_amount DECIMAL(16,2),\n" +
                "PRIMARY KEY (id) NOT ENFORCED \n" +
                ") WITH ( \n" +
                "'connector' = 'jdbc', \n" +
                "'url' = 'jdbc:mysql://bigdata:3306/report?useSSL=false&useUnicode=true&characterEncoding=utf-8', \n" +
                "'table-name' = 'total_amount', \n" +
                "'username' = 'root', \n" +
                "'password' = '123456', \n" +
                "'connection.max-retry-timeout' = '60s', \n" +
                "'sink.max-retries' = '3', \n" +
                "'lookup.max-retries' = '3' \n" +
                ")";

//        创建Sink表,连接到MySQL,累计实收额
        String sink_real_amount = "CREATE TABLE real_amount ( \n" +
                "id INT,\n" +
                "real_amount DECIMAL(16,2),\n" +
                "PRIMARY KEY (id) NOT ENFORCED \n" +
                ") WITH ( \n" +
                "'connector' = 'jdbc', \n" +
                "'url' = 'jdbc:mysql://bigdata:3306/report?useSSL=false&useUnicode=true&characterEncoding=utf-8', \n" +
                "'table-name' = 'real_amount', \n" +
                "'username' = 'root', \n" +
                "'password' = '123456', \n" +
                "'connection.max-retry-timeout' = '60s', \n" +
                "'sink.max-retries' = '3', \n" +
                "'lookup.max-retries' = '3' \n" +
                ")";

//        创建Sink表,连接到MySQL,累计运营总人次
        String sink_people_cnt = "CREATE TABLE people_cnt ( \n" +
                "id INT,\n" +
                "people_cnt BIGINT,\n" +
                "PRIMARY KEY (id) NOT ENFORCED \n" +
                ") WITH ( \n" +
                "'connector' = 'jdbc', \n" +
                "'url' = 'jdbc:mysql://bigdata:3306/report?useSSL=false&useUnicode=true&characterEncoding=utf-8', \n" +
                "'table-name' = 'people_cnt', \n" +
                "'username' = 'root', \n" +
                "'password' = '123456', \n" +
                "'connection.max-retry-timeout' = '60s', \n" +
                "'sink.max-retries' = '3', \n" +
                "'lookup.max-retries' = '3' \n" +
                ")";

//        每个站的累计营收额
        String station_amount = "insert into station_amount select station,sum(deal_money) from MetroSwipingData group by station";

//        每个站点的累计出入站人数
        String station_peopleNum = "insert into station_peopleNum select \n" +
                "station,\n" +
                "sum(case when deal_type='地铁入站' then 1 else 0 end)as enterNum,\n" +
                "sum(case when deal_type='地铁出站' then 1 else 0 end)as outNum\n" +
                "from MetroSwipingData group by station";

//        每条线路的营业额
        String line_amount = "insert into line_amount select company_name,sum(deal_value) as amount from MetroSwipingData group by company_name";

//        每天客流量 sink
//        String data_peopleNum = "insert into data_peopleNum select close_date,count(DISTINCT card_no) as peopleNum from MetroSwipingData group by close_date";

//        累计营收额 trans
        String total_amount = "insert into total_amount select 1 as id, sum(deal_value) as total_amount from MetroSwipingData";

//        累计实收额
        String real_amount = "insert into real_amount select 1 as id, sum(deal_money) as real_amount from MetroSwipingData";

//        累计总客运量
        String people_cnt = "insert into people_cnt select 1 as id, count(1) as people_cnt from MetroSwipingData where deal_type='地铁入站'";

//        开始启动
        System.out.println("========================================== Flink任务开始启动... ==========================================");

//         创建source表
        System.out.println("开始创建source表 [MetroSwipingData]...");
        tableEnv.executeSql(kafkaSource);
        System.out.println("source表 [MetroSwipingData] 创建成功...");

//         创建sink表
        System.out.println("开始创建sink表 [station_amount]...");
        tableEnv.executeSql(sink_station_amount);
        tableEnv.executeSql(sink_station_peopleNum);
        tableEnv.executeSql(sink_line_amount);
//        tableEnv.executeSql(sink_data_peopleNum);
        tableEnv.executeSql(sink_total_amount);
        tableEnv.executeSql(sink_real_amount);
        tableEnv.executeSql(sink_people_cnt);
        System.out.println("sink表 [station_amount | station_peopleNum | station_peopleNum | line_amount | total_amount | real_amount | people_cnt] 创建成功...");

//         开始执行计算逻辑
        System.out.println("开始执行逻辑操作");
        tableEnv.executeSql(station_amount);
        tableEnv.executeSql(station_peopleNum);
        tableEnv.executeSql(line_amount);
//        tableEnv.executeSql(data_peopleNum);
        tableEnv.executeSql(total_amount);
        tableEnv.executeSql(real_amount);
        tableEnv.executeSql(people_cnt);
        System.out.println("========================================== Flink任务启动成功... ==========================================");




    }



}

运行截图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

视频

计算机毕业设计吊打导师hadoop+spark知识图谱医生推荐系统 门诊预测 医疗数据可视化 医疗大数据 医疗数据分析 医生爬虫 大数据毕业设计 大数据毕设

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【技术经验分享】计算机毕业设计hadoop+spark知识图谱医生推荐系统 门诊人数预测 医疗数据可视化 医疗大数据 医疗数据分析 医生爬虫 大数据毕业设计 大数据毕设 的相关文章

随机推荐

  • 微信小程序-“授权失败”场景的优雅处理

    微信小程序中提供了相关API 让开发者能获取到微信用户的相关信息 在首次去获取的时候会展示一个用户是否同意授权的对话框 发现有不少线上的小程序都没有处理好用户 拒绝授权 导致的 授权失败 场景 一个观点 私认为 开发微信小程序在用户授权上有
  • 蘑菇街前端面试

    vue与jquery的区别 为什么现在很多人使用vue vue怎样实现双向数据绑定 内部原理 1 jQuery首先要获取到dom对象 然后对dom对象进行进行值的修改等操作 2 Vue是首先把值和js对象进行绑定 然后修改js对象的值 Vu
  • iview Table中switch值无法刷新问题

    table里面的开关在修改状态以后 翻页后状态不在变化 render h params gt return h i switch props size large value params row filterContact on可以传入绑
  • Tkinter 组件详解(七):Entry

    Tkinter 组件详解之Entry Entry 输入框 组件通常用于获取用户的输入文本 何时使用 Entry 组件 Entry 组件仅允许用于输入一行文本 如果用于输入的字符串长度比该组件可显示空间更长 那内容将被滚动 这意味着该字符串将
  • leetcode刷题——多维枚举(一)

    题目一 思路 双指针 bool isSubsequence char s char t int fast 0 int slow 0 while slow
  • JavaWeb之Servlet详解

    文章目录 一 什么是Servlet 二 Servlet 1 Servlet是如何起作用的 2 Servlet接口中的方法 3 Servlet对象的生命周期 三 ServletConfig 1 什么是ServletConfig 2 Servl
  • MOS驱动自举电容和限流电阻的选取

    自举电容选取 最近做逆变时出现了异常 使用2104驱动MOS管 蓝色为滤波后双端带载时出现的波形 一端带载时没有问题 放大波形后发现输出波形在占空比满值时垮掉 产生严重的震荡 可以看到波形顶部斜向下 我们可以推断是驱动自举电容值偏小 当占空
  • ARMv8-A 地址翻译技术之MMU的前世今生

    MMU的重要性不言而喻 支撑操作系统之上的各种复杂应用 但在正式讲MMU之前 我们先说说MMU的发展史 因为ARMv8 A的MMU相当复杂 直接切入正题 会显得比较枯燥 废话不多说 咱们马上开始 一 前言 关于虚拟内存系统的演变史 MMU在
  • 计划 060703

    ESOE项目暂时作为一个自娱型项目 每日投入30分钟 近期按计划完成以下工作 1 完成计划 ok 2 完成对ESOE项目的介绍 ok 060704 3 在blog发布已有的 ESOE Specification v0 1 doc 英文版 o
  • 什么是.NET架构

    什么是 NET架构 NET架构主要分为3部分 FCL Framework Class Library CTS Common Type System 其中包括Common Language Specification CLR Common L
  • 教你自制一款简单的助听器

    助听器实质上是一种低频放大器 可用耳机进行放音 当使用者用上耳机后 可提高老年者的听觉 同时可对青少年的学习和记忆能带来方便 一 工作原理 本电路由话筒 前置低放 功率放大电路和耳机等部分组成 原理电路图见图1 其印刷板电路图见图2 驻极体
  • c++面对对象基础知识

    一 类的定义格式 class calss name private data member declarations public member functions 二 构造函数 1 在程序声明对象时 将自动调用构造函数 2 c 提供两种构
  • 腾讯2017暑期实习生笔试题题解

    7个月没有刷题了 现在真的是菜到爆炸 所以来牛客水一水编程题 一 构造回文 题意 给定一个字符串s 你可以从中删除一些字符 使得剩下的串是一个回文串 如何删除才能使得回文串最长呢 输出需要删除的字符个数 输入描述 输入数据有多组 每组包含一
  • 获取配置文件中的属性

    spring boot的工程启动的时候 内部文件默认是加载classpath路径或者classpath config目录下的application properties文件的 当然也可以指定加载其它的配置文件 如何获取配置文件中的属性呢 实
  • VSCODE如何汉化成中文

    VSCODE默认是以英文显示的 对于不习惯用英文的朋友可以将VSCODE汉化成中文 小编来说下如何汉化吧 工具 原料 VSCODE 方法 步骤 1 VSCODE默认情况下是英文的 点击左侧菜单栏最底下的四方形按钮打开扩展程序界面 在输入框内
  • 微信小程序之Image那些事

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 一 使用场景 二 使用方式 1 动态读取image大小 2 动态设置style 3 动态赋值 总结 前言 小程序中 Image使用频率是非常高的 不同场景下
  • 深度学习移动端在线训练 --- 基于MNN的端侧Finetune实现

    在决定使用MNN实现在线训练之前 也比较了TNN NCNN 发现目前各大端侧推理引擎的训练框架都不成熟 半斤八两的状态 可能都把精力放在推理和op支持上 但是端侧训练的需求真的少么 fine tune在端侧应用难道不是刚需 端侧推理的实现相
  • 爬虫日常-selenium登录12306,绕过验证

    文章目录 前言 代码设计 前言 hello兄弟们 这里是无聊的网友 愉快的周末过去了 欢迎回到学习频道 书接上文 我们说到了再用selenium登录12306时遇到了滑块验证的问题 当前的网站几乎每家都会在登录模块添加一个认证 来规避各种爬
  • maven依赖冲突以及解决方法

    什么是依赖冲突 依赖冲突是指项目依赖的某一个jar包 有多个不同的版本 因而造成类包版本冲突 依赖冲突的原因 依赖冲突很经常是类包之间的间接依赖引起的 每个显式声明的类包都会依赖于一些其它的隐式类包 这些隐式的类包会被maven间接引入进来
  • 【技术经验分享】计算机毕业设计hadoop+spark知识图谱医生推荐系统 门诊人数预测 医疗数据可视化 医疗大数据 医疗数据分析 医生爬虫 大数据毕业设计 大数据毕设

    开发技术 springboot vue js element ui spark hadoop lstm情感分析模型 KNN CNN卷积神经 线性回归 协同过滤算法 用户 物品 MLP神经网络 SVD深度学习模型 echarts python