• 2020寒假学习笔记06


      今天只完成了第四个实验的第2题,这也是一下午的结果,今天一下午彻底自闭了,程序总是出错,并且错误还一直解决不了。今天效率低的原因是一直报数组越界的错误,可是怎么看数据文件都没有错误。最后的最后,也就是刚才,无奈之下将文件重新写了一遍,这样结果才终于对了。

      第二题实验内容: 

    2.编写独立应用程序实现数据去重
    对于两个输入文件 A 和 B,编写 Spark 独立应用程序,对两个文件进行合并,并剔除其
    中重复的内容,得到一个新文件 C。下面是输入文件和输出文件的一个样例,供参考。
    输入文件 A 的样例如下:
    20170101 x
    20170102 y
    20170103 x
    20170104 y
    20170105 z
    20170106 z
    输入文件 B 的样例如下:
    20170101 y
    20170102 y
    20170103 x
    20170104 z
    20170105 y
    根据输入的文件 A 和 B 合并得到的输出文件 C 的样例如下:
    20170101 x
    20170101 y
    20170102 y
    20170103 x
    20170104 y
    20170104 z
    20170105 y
    20170105 z
    20170106 z
     
    源代码:
      
     1 import org.apache.spark.SparkContext
     2 import org.apache.spark.SparkContext._
     3 import org.apache.spark.SparkConf
     4 import org.apache.spark.HashPartitioner
     5 
     6 object RemDup
     7 {
     8     def main(args:Array[String])
     9     {
    10         val conf = new SparkConf().setAppName("RemDup")
    11         val sc = new SparkContext(conf)
    12         val dataFile = "file:///usr/local/spark/mycode/remdup/data"
    13         val data = sc.textFile(dataFile,2)
    14         val res = data.filter(_.trim().length>0).map(line=>(line.trim,"")).partitionBy(new HashPartitioner(1)).groupByKey().sortByKey().keys
    15         res.saveAsTextFile("result")
    16     }
    17 }
    View Code

    结果:

    第三题实验内容:

    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)
     
    源代码:
     1 import org.apache.spark.SparkContext
     2 import org.apache.spark.SparkContext._
     3 import org.apache.spark.SparkConf
     4 import org.apache.spark.HashPartitioner
     5 
     6 object AvgScore
     7 {
     8     def main(args:Array[String])
     9     {
    10         val conf = new SparkConf().setAppName("AvgScore")
    11         val sc = new SparkContext(conf)
    12         val dataFile = "file:///usr/local/spark/mycode/avgscore/data"
    13         val data = sc.textFile(dataFile,3)
    14         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=>{
    15         var n=0
    16         var sum=0.0
    17         for(i<-x._2){
    18             sum=sum+i
    19             n=n+1
    20         }
    21         val avg=sum/n
    22         val format=f"$avg%1.2f".toDouble
    23         (x._1,format)
    24         })
    25         res.saveAsTextFile("result2")
    26     }
    27 }
    View Code

    实验结果:

  • 相关阅读:
    (android高仿系列)今日头条 --新闻阅读器 (三) 完结 、总结 篇
    今日头条 --新闻阅读器
    免费新闻娱乐接口文档
    [代码片段] Android百度地图定位收索取周边在列表中展示并选择
    引用其它布局
    关于推广个人博客的经验_博客推广
    博客推广方法技巧
    android项目解刨之时间轴
    Android小项目:计算器
    Android项目技术总结:网络连接总结
  • 原文地址:https://www.cnblogs.com/qianmo123/p/12249420.html
Copyright © 2020-2023  润新知