spark写芝加哥犯罪分析,统计每个fbi代码发生的犯罪次数,统计芝加哥市的某种犯罪类型的数量,统计每个区域某种犯罪类型的逮捕次数
时间: 2024-03-29 22:36:02 浏览: 14
要进行芝加哥犯罪数据分析,可以使用Spark SQL进行处理。下面是基于Spark SQL的示例代码:
```scala
import org.apache.spark.sql.{DataFrame, SparkSession}
// 创建SparkSession
val spark: SparkSession = SparkSession.builder()
.appName("Chicago Crime Analysis")
.master("local[*]")
.getOrCreate()
// 读取芝加哥犯罪数据
val chicagoCrimeData: DataFrame = spark.read.format("csv")
.option("header", "true")
.option("inferSchema", "true")
.load("path/to/chicago_crime_data.csv")
// 统计每个fbi代码发生的犯罪次数
chicagoCrimeData.groupBy("FBI Code").count().show()
// 统计芝加哥市的某种犯罪类型的数量
val primaryType: String = "THEFT"
val theftCount: Long = chicagoCrimeData.filter(s"Primary Type='$primaryType'").count()
println(s"Total number of $primaryType crimes in Chicago: $theftCount")
// 统计每个区域某种犯罪类型的逮捕次数
val arrestCountByArea: DataFrame = chicagoCrimeData
.filter(s"Primary Type='$primaryType'")
.groupBy("Community Area")
.agg(Map("Arrest" -> "sum"))
.withColumnRenamed("sum(Arrest)", "Arrest Count")
arrestCountByArea.show()
```
其中,`chicago_crime_data.csv`是芝加哥犯罪数据集的文件路径。我们首先使用`read`方法读取数据,并使用`groupBy`和`count`方法统计每个fbi代码发生的犯罪次数。然后,使用`filter`方法过滤出某种犯罪类型的数据,并使用`count`方法统计该类型犯罪在芝加哥市的总数。最后,使用`groupBy`、`agg`和`withColumnRenamed`方法统计每个区域某种犯罪类型的逮捕次数,并将结果展示出来。