同班还在跑单机,他用 Hadoop+Spark 搞定深圳一手房成交大数据,导师直接点赞

59 阅读3分钟

💖💖作者:计算机编程小咖 💙💙个人简介:曾长期从事计算机专业培训教学,本人也热爱上课教学,语言擅长Java、微信小程序、Python、Golang、安卓Android等,开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。平常喜欢分享一些自己开发中遇到的问题的解决办法,也喜欢交流技术,大家有技术代码这一块的问题可以问我! 💛💛想说的话:感谢大家的关注与支持! 💜💜 网站实战项目 安卓/小程序实战项目 大数据实战项目 深度学习实战项目

@TOC

深圳一手房成交数据分析系统介绍

《基于大数据的深圳一手房成交数据分析系统》面向深圳每日新增的一手房网签记录,先由 Python 脚本批量抓取原始 CSV,经 Flume 直送 Hadoop HDFS 做持久化;Spark 以 RDD 与 Spark SQL 两级清洗,将 12 个维度、千万级记录去噪、补全、分区,落盘为 Parquet,再由 Pandas 与 NumPy 在本地 Notebook 做二次校验,确保时序完整。业务层提供 Django 版 REST 接口与 Spring Boot 版 API 双实现,统一返回 JSON,供 Vue+ElementUI 前端拉取;前端以 Echarts 绘制交互式大屏,把系统首页、各区房产对比、房产用途结构、市场供需、交易时序、关联性探索等八大分析模块整合为可钻取的仪表盘。用户模块支持注册、登录、个人信息与密码修改;管理员可在后台进行用户管理与房屋成交信息的手动增删改查。整套流程从数据爬取、分布式存储、分布式计算到可视化呈现,完整示范了如何用 Hadoop+Spark 构建本地化、可扩展的房产大数据毕业设计。

深圳一手房成交数据分析系统演示视频

视频演示

深圳一手房成交数据分析系统演示图片

登陆界面.png

房产交易时序分析.png

房产用途结构分析-.png

房屋成交信息.png

各区房产对比分析.png

关联性探索分析.png

市场供需状况分析.png

数据大屏.png

用户管理.png

深圳一手房成交数据分析系统代码展示

# 核心功能1:Spark SQL 计算各区近30天成交均价并写回 MySQL
def calc_district_avg_price(spark, mysql_url, mysql_prop):
    df = spark.read.parquet("hdfs://master:9000/szhouse/dws_fact_sales")
    df.filter("sale_date >= date_sub(current_date(), 30)") \
      .groupBy("district") \
      .agg(
          avg("unit_price").alias("avg_price"),
          sum("deal_area").alias("total_area"),
          count("*").alias("deal_cnt")
      ) \
      .withColumn("stat_date", current_date()) \
      .write.jdbc(url=mysql_url, table="district_avg_price", mode="overwrite", properties=mysql_prop)


# 核心功能2:Spring Boot 生成时序 JSON 接口
@RestController
@RequestMapping("/api/trend")
public class TrendController {
    @Autowired
    JdbcTemplate jdbcTemplate;

    @GetMapping("/{district}")
    public List<Map<String,Object>> trend(@PathVariable String district){
        String sql = """
            SELECT DATE(sale_date) d, SUM(deal_area) area, AVG(unit_price) price
            FROM fact_sales
            WHERE district=? AND sale_date >= DATE_SUB(CURDATE(), INTERVAL 90 DAY)
            GROUP BY d ORDER BY d
        """;
        return jdbcTemplate.queryForList(sql, district);
    }
}


# 核心功能3:Vue+Echarts 前端大屏实时拉取并渲染供需热力图
methods:{
  loadHeatmap(){
    axios.get("/api/heatmap").then(res=>{
      const data = res.data;
      this.chart = echarts.init(this.$refs.heatmap);
      const option = {
        tooltip:{formatter:p=>`${p.name}: ${p.value[2]}套`},
        visualMap:{min:0,max:500,inRange:{color:['#50a3ba','#eac736','#d94e5d']}},
        geo:{map:'sz',roam:true},
        series:[{
          type:'scatter',
          coordinateSystem:'geo',
          data:data.map(r=>({name:r.plot,nameCoord:[r.lng,r.lat],value:[r.lng,r.lat,r.supply]}))
        }]
      };
      this.chart.setOption(option);
    });
  }
}

深圳一手房成交数据分析系统文档展示

文档.png

💖💖作者:计算机编程小咖 💙💙个人简介:曾长期从事计算机专业培训教学,本人也热爱上课教学,语言擅长Java、微信小程序、Python、Golang、安卓Android等,开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。平常喜欢分享一些自己开发中遇到的问题的解决办法,也喜欢交流技术,大家有技术代码这一块的问题可以问我! 💛💛想说的话:感谢大家的关注与支持! 💜💜 网站实战项目 安卓/小程序实战项目 大数据实战项目 深度学习实战项目