赞
踩
目录
2.2 ,统计每个城市出租房的不同楼层的分布数量(比如某某城市出租房在3层的数量为231个)
2.3,统计各个地区配备有阳台的出租房数量(比如在某某地区配有阳台的出租房数量为89个)
2.4,租金5千以下室一阶,5千以上一万以下室2阶,一万以上为3阶,统计每个地区的租金的不同阶级数量
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,实时统计不同房型的出租数量。
创建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”。
- val ss = SparkSession.builder.appName("zuoye").master("local").getOrCreate
- val df = ss.read.format("csv")
- .option("header", "true")
- .option("inferSchema", "true")
- .option("encoding", "GBK")
- .load("D://中国租房信息数据集.csv")
- df.show();
通过用groupBy城市和楼层进行分组后用count进行聚合统计出每个城市不同楼层的分布数量
1,df.groupBy("城市","所属楼层"):通过列名 “城市” 和 “所属楼层” 对数据进行分组。
2,.count():对 “城市” 和 “所属楼层” 进行分组后,计算每个分组中的行数。
3,dd:将分组计数的结果保存在一个新的 DataFrame 对象 dd 中。
4,dd.orderBy("城市"):通过列名 “城市” 对结果进行排序。
5,.show():显示 DataFrame 的内容。
- //统计每个城市出租房的不同楼层的分布数量//统计每个城市出租房的不同楼层的分布数量
- val dd = df.groupBy("城市", "所属楼层").count
- dd.orderBy("城市").show()
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。