import org.apache.spark.{SparkConf, SparkContext}
#导入需要的类
object MaxAndMin {
def main(args: Array[String]): Unit = {
val conf = new SparkConf().setAppName(“MaxAndMin“).setMaster("local")
#设置一些配置
val sc = new SparkContext(conf)
#连接SparkMaster,生成sc对象
sc.setLogLevel("ERROR")
# 设置日志输出格式
val lines = sc.textFile("hdfs://localhost:9000/user/hadoop/spark/chapter5", 2)
#读取文本文件所有行的内容,生成一个RDD,即lines(每个元素都是字符串,是文本中的一行),
#2为设置2个分区
val result = lines.filter(_.trim().length>0)
#//过滤没有内容的行
.map(line => ("key",line.trim.toInt)).groupByKey().map(x => {
#遍历每一个元素生成key,value的形式
#把key相同的键值对的value构成value-list
var min = Integer.MAX_VALUE
var max = Integer.MIN_VALUE
#设置两个变量,存储最大值、最小值
for(num <- x._2){
#循环遍历value
if(num>max){
#获取最大值max
max = num
}
if(num<min){
#获取最小值min
min = num
}
}
(max,min)
#封装成元组
}).collect.foreach(x => {
#收集遍历
println("max\t"+x._1)
#打印最大值
println("min\t"+x._2)
#打印最小值
})
}
}
第七次课作业
最新推荐文章于 2022-07-18 16:08:53 发布