scala开发求最大值和最小值

tech2022-09-19  58

1、注意scala与spark的版本匹配的问题 下面这个匹配是没有问题的

name := "top" version := "0.1" scalaVersion := "2.11.12" libraryDependencies += "org.apache.spark" %% "spark-core" % "2.1.0"

scala的版本如果不是2.11.12,spark的版本不是2.1.0.否则很可能就会造成不对应的结果

下面是用scala求最大最小值的程序

import org.apache.spark.{SparkConf,SparkContext} /** * @author * @date 2020-09-03 20:11 * @version 1.0 */ object MaxAndMin { def main(args: Array[String]): Unit = { val conf = new SparkConf().setAppName("MaxAndMin").setMaster("local") val sc = new SparkContext(conf) sc.setLogLevel("ERROR") val lines = sc.textFile("/Users/navyliu/Downloads/Spark/minMax.txt") val result = lines.filter(_.trim().length>0).map(line => ("key",line.trim.toInt)).groupByKey().map(x =>{ var min = Integer.MAX_VALUE var max = Integer.MIN_VALUE for(num<- x._2){ if(num > max) { max = num } if(num < min) { min = num } } (max,min) }).collect().foreach(x=> { println("max\t" + x._1) println("min\t" + x._2) }) } }

文本文件为:

129 23 4554 6656 444 4 4664 789 55 8889 55 9 55454

执行结果为: 温馨提示: 1、如果执行过程中报下面这个错误: “找不到或无法加载主类” 请先compile这个项目,然后在run,这样就可以了.

2、代码的循环解释: for(num<- x._2){… } for语句是对x._2进行遍历, x._2就是键值对(key,value-list)中的 value-list,这里的value-list就是<234,434343,2332,4444>

如果还遇到什么问题,请扫描关注下方二维码:

最新回复(0)