当前位置:   article > 正文

【spark】统计出租房指标_在idea中进行spark编程统计各地区的出租房数

在idea中进行spark编程统计各地区的出租房数

目录

前言

一,负责指标介绍

二,指标计算过程代码

2.1,读取csv数据

2.2 ,统计每个城市出租房的不同楼层的分布数量(比如某某城市出租房在3层的数量为231个)

2.3,统计各个地区配备有阳台的出租房数量(比如在某某地区配有阳台的出租房数量为89个)

2.4,租金5千以下室一阶,5千以上一万以下室2阶,一万以上为3阶,统计每个地区的租金的不同阶级数量

2.5,实时统计不同房型的出租数量。

2.6,全部代码

四,数据链接

五,心得体会


前言


Spark是一种开源的,在内存中运行的大数据处理框架。它能够处理大规模的数据集,并提供了一个简单易用的编程接口来以分布式方式处理数据,从而实现更快的处理速度和更高的性能。Spark支持多种编程语言,包括Scala、Java、Python和R等。Spark是基于内存的计算,因此比传统的基于磁盘的计算框架(如Hadoop)更快,特别是对于需要多次访问数据的应用程序。

另外,Spark不仅支持批处理操作,也支持流处理(实时数据处理),可以支持实时流式数据源(如Kafka、Flume和Twitter等)。

Spark生态系统包括多个基于Spark构建的工具和库,例如:

Spark SQL:适用于结构化数据分析和处理的模块;
Spark Streaming:适用于实时流式数据处理的模块;
Spark MLlib:用于机器学习的库;
Spark GraphX:用于图形计算和分析的模块。
Spark可以在单个计算机或者一个分布式计算集群上运行。它的弹性和易扩展是它如此受欢迎的原因之一。下面介绍本人用spark统计各个城市房子出租相关的指标的计算过程。

一,负责指标介绍


1,统计每个城市出租房的不同楼层的分布数量(比如某某城市出租房在3层的数量为231个)
2,统计各个地区配备有阳台的出租房数量(比如在某某地区配有阳台的出租房数量为89个)
3,租金5千以下室一阶,5千以上一万以下室2阶,一万以上为3阶,统计每个地区的租金的不同阶级数量(比如某某地区租金在5000以下的房子有100个,那么该地区租金在一阶等级的房子就有100个,可通过该数据与自身预算对比,知道在哪个地区能找到自己符合的房子概率大)
4,实时统计不同房型的出租数量。


二,指标计算过程代码


2.1,读取csv数据


创建SparkSession对象,利用Spark 读取一个 CSV 文件并加载为一个 DataFrame(Dataset<Row>)对象,以下是对代码的解析

ss.read():ss 是一个 SparkSession 对象,通过调用 read() 方法可以获取一个 DataFrameReader 对象,用于读取数据。

.format("csv"):指定数据源的格式为 CSV。这告诉 Spark 使用 CSV 格式解析数据。

.option("header", "true"):指定输入文件中包含列名。这样,Spark 将第一行作为列名处理,而不会将其作为数据行。

.option("inferSchema", "true"):指定 Spark 推断数据列的数据类型。如果设置为 “true”,Spark 将尝试根据数据内容自动推断每列的数据类型。

.option("encoding","GBK"):指定输入文件的编码格式。在这个例子中,指定为 GBK 编码。

.load("D://中国租房信息数据集.csv"):指定要读取的文件路径。在这个例子中,文件位于本地磁盘的 “D://中国租房信息数据集.csv”。

  

  1.   val ss = SparkSession.builder.appName("zuoye").master("local").getOrCreate
  2.     val df = ss.read.format("csv")
  3.       .option("header", "true")
  4.       .option("inferSchema", "true")
  5.       .option("encoding", "GBK")
  6.       .load("D://中国租房信息数据集.csv")
  7.        df.show(); 


2.2 ,统计每个城市出租房的不同楼层的分布数量(比如某某城市出租房在3层的数量为231个)


通过用groupBy城市和楼层进行分组后用count进行聚合统计出每个城市不同楼层的分布数量

1,df.groupBy("城市","所属楼层"):通过列名 “城市” 和 “所属楼层” 对数据进行分组。

2,.count():对 “城市” 和 “所属楼层” 进行分组后,计算每个分组中的行数。

3,dd:将分组计数的结果保存在一个新的 DataFrame 对象 dd 中。

4,dd.orderBy("城市"):通过列名 “城市” 对结果进行排序。

5,.show():显示 DataFrame 的内容。

  1.     //统计每个城市出租房的不同楼层的分布数量//统计每个城市出租房的不同楼层的分布数量
  2.     val dd = df.groupBy("城市", "所属楼层").count
  3.     dd.orderBy("城市").show()


2.3,统计各个地区配备有阳台的出租房数量(比如在某某地区配有阳台的出租房数量为8

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小桥流水78/article/detail/771566
推荐阅读
相关标签
  

闽ICP备14008679号