Spark 求取每年的最高气温

数据:

1990-01-01	-5
1990-06-18	35
1990-03-20	8
1989-05-04	23
1989-11-11	-3
1989-07-05	38
1990-07-30	37
import org.apache.spark.{SparkConf, SparkContext}

object MaxTemp extends App {

  System.setProperty("hadoop.home.dir","D:\\soft\\hadoop\\hadoop-2.7.3")

  val conf=new SparkConf().setMaster("local[*]").setAppName("MaxTemp")
  val sc=new SparkContext(conf)
  val lineRDD=sc.textFile(args(0))
  val pairRDD=lineRDD.map(line => {
    val year=line.split("\\s")(0).substring(0,4)
    (year,line)

  })

  val maxRDD=pairRDD.groupByKey().map(f = tuple => {
    val list = tuple._2
    var maxTemp=Integer.MIN_VALUE
    var day=""
    for (valueStr <- list){
      //判断获取每年的最高气温及哪天
      if (valueStr.split("\\s")(1).toInt>maxTemp){
        maxTemp=valueStr.split("\\s")(1).toInt
        day=valueStr.split("\\s")(0)
      }
    }
    (tuple._1,maxTemp,day)

  })
  maxRDD.foreach(println)

  sc.stop()
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值