前言
这个只是有项目引入spark集群,以及用sparksql对数据进行分析,后续的内容和代码几乎跟之前的一样(我写过一片pyecharts+django可视化大屏的文章,里面有源码)
pyecharts+Django二手房分析可视化大屏(含源码)-CSDN博客
pyecharts二手房数据可视化分析(含3D图)-CSDN博客
思维导图

启动大数据集群
这些环境数科生应该都有配好吧?!
启动Hadoop集群
bash
start-all.sh

启动spark集群
bash
./start-all.sh


解释一下
python
root@master sbinj# jps
3458 ResourceManager # YARN 资源管理进程
3187 SecondaryNameNode # HDFS 二级元数据备份进程
4835 Jps # jps 命令本身的进程(可忽略)
2900 NameNode # HDFS 主元数据管理进程
4734 Master # Spark 或其他框架的主进程(需结合集群配置确认)
进入mysql,建立新数据库

sql
CREATE DATABASE ershoufang;
SHOW DATABASES;


spark分析
我用的是idea编译器,用的是虚拟环境



我觉得大部分人都已经构建好了,就展示截图,不详解了

python
from pyspark.sql import SparkSession
from pyspark import SparkConf
from pyspark.sql.functions import col, regexp_extract, when
from pyspark.sql import functions as F
# 创建Spark会话
conf = SparkConf() \
.setAppName("PySpark 的数据读写") \
.setMaster('spark://192.168.126.10:7077') \
.set("spark.driver.host", "192.168.126.1")
spark = SparkSession.builder.config(conf=conf).getOrCreate()
# 读取CSV文件
df = spark.read.csv('hdfs://192.168.126.10:9000/data/ershoufang_data_processed.csv', header=True)
df = df.na.drop()
city_counts = df.groupBy("城市") \
.count() \
.orderBy(F.desc("count")) \
.withColumnRenamed("count", "total") \
url = "jdbc:mysql://192.168.126.10:3306/ershoufang"
properties = {
"user": "root",
"password": "123456",
"driver": "com.mysql.jdbc.Driver"
}
# 写数据到MySQL的test数据库的movie表,无需预先在MySQL创建表。自动在mysql创建movie表
city_counts.coalesce(1).write.format('jdbc') \
.option('url', url) \
.option('dbtable', 'city_counts') \
.option('user', properties['user']) \
.option('password', properties['password']) \
.option('driver', properties['driver']) \
.option('mode', 'append') \
# .save() # 第一次建表时使用.save()。append为追加数据模式,overwrite覆盖数据模式
进行数据分析完成后(这个就是对各城市房源的汇总),存入mysql(远程环境的mysql,也就是虚拟机),然后建立django环境生成图表
已经有个例子了,剩下的数据分析应该都容易了吧(毕竟源码之前都更了),这里是数据分析生成的表

柱状图展示
