通过Spark程序 1.统计C:\Users\admin\Desktop\教师文件\test.txt数据中性别为“男”的用户数。 2.统计C:\Users\admin\Desktop\教师文件\test.txt数据中ID号最大的前10位用户的id和性别。
时间: 2024-04-25 20:20:07 浏览: 82
通过Spark程序可以实现对大规模数据进行分布式处理和分析,下面是对你提出的两个问题的回答:
1. 统计C:\Users\admin\Desktop\教师文件\test.txt数据中性别为“男”的用户数的Spark程序可以如下实现:
```scala
import org.apache.spark.sql.SparkSession
object MaleUserCount {
def main(args: Array[String]): Unit = {
val spark = SparkSession.builder()
.appName("MaleUserCount")
.master("local")
.getOrCreate()
val data = spark.read.textFile("C:\\Users\\admin\\Desktop\\教师文件\\test.txt")
val maleCount = data.filter(line => line.split(",")(2) == "男").count()
println("男性用户数:" + maleCount)
spark.stop()
}
}
```
2. 统计C:\Users\admin\Desktop\教师文件\test.txt数据中ID号最大的前10位用户的id和性别的Spark程序可以如下实现:
```scala
import org.apache.spark.sql.SparkSession
object Top10Users {
def main(args: Array[String]): Unit = {
val spark = SparkSession.builder()
.appName("Top10Users")
.master("local")
.getOrCreate()
val data = spark.read.textFile("C:\\Users\\admin\\Desktop\\教师文件\\test.txt")
val top10Users = data.map(line => {
val fields = line.split(",")
(fields(0).toInt, fields(2))
}).sortByKey(ascending = false).take(10)
println("ID号最大的前10位用户:")
top10Users.foreach(user => println("ID:" + user._1 + ",性别:" + user._2))
spark.stop()
}
}
```
阅读全文