zoukankan      html  css  js  c++  java
  • 2020寒假学习记录(12)——实验4-3

    一、编写独立应用程序实现求平均值问题

    每个输入文件表示班级学生某个学科的成绩,每行内容那个由两个字段组成,第一个使学生名字,第二个是学生成绩;编写spark独立应用程序求出所有学生的平均成绩,并输出到一个新文件中。

    供参考。
    Algorithm 成绩:
    小明 92
    小红 87
    小新 82
    小丽 90
    Database 成绩:
    小明 95
    小红 81
    小新 89
    小丽 85
    Python 成绩:
    小明 82
    小红 83
    小新 94
    小丽 91
    平均成绩如下:
    (小红,83.67)
    (小新,88.33)
    (小明,89.67)
    (小丽,88.67)
     
    源代码如下:
    import org.apache.spark.SparkContext
    import org.apache.spark.SparkContext._
    import org.apache.spark.SparkConf
    import org.apache.spark.HashPartitioner
    
    object SimpleApp
    {
          def main(args:Array[String])
    {
          val conf = new SparkConf().setAppName("SimpleApp")
    val sc = new SparkContext(conf)
          val dataFile = "file:///usr/local/spark/input2"
          val data = sc.textFile(dataFile,3)
    
          val res=data.filter( _.trim().length>0).map(line=>(line.split(" ")(0).trim(),line.split(" ")(1).trim().toInt)).partitionBy(new HashPartitioner(1)).groupByKey().map(x=>{
    var n=0
    var sum=0.0
          for(i<-x._2){
          sum=sum+i
          n=n+1
          }
    
          val avg=sum/n 
    
          val format=f"$avg%1.2f".toDouble
          (x._1,format)})
    
          res.saveAsTextFile("/home/hadoop/result")
    }
    }

  • 相关阅读:
    staticmethod classmethod
    Cache Buffer 区别
    Apache 各启动方式的差别
    网段,掩码
    容器镜像国内下载加速----借助阿里
    import 本质
    数字签名证书的事儿
    java中的sql语句中如果有like怎么写
    VMware+centos7克隆多个虚拟机
    使用Ajax轮询模拟简单的站内信箱(消息管理)功能
  • 原文地址:https://www.cnblogs.com/Qi77/p/12320957.html
Copyright © 2011-2022 走看看