• 实验四RDD编程初级实践


    1.spark-shell 交互式编程

    (1) 该系总共有多少学生;

     

    (2) 该系共开设来多少门课程;

     

    (3) Tom 同学的总成绩平均分是多少;

     

    (4) 求每名同学的选修的课程门数;

     

    (5) 该系 DataBase 课程共有多少人选修

     

    (6) 各门课程的平均分是多少;

     

    2.编写独立应用程序实现数据去重:

    对于两个输入文件 A 和 B,编写 Spark 独立应用程序,对两个文件进行合并,并剔除其 中重复的内容,得到一个新文件 C

    代码:

    新建scala文件

     

    写入一下代码

    import org.apache.spark.SparkContext

    import org.apache.spark.SparkContext._

    import org.apache.spark.SparkConf

    import org.apache.spark.HashPartitioner

    object RemDup {

    def main(args: Array[String]) {

    val conf = new SparkConf().setAppName("RemDup")

    val sc = new SparkContext(conf)

    val dataFile = "file:///home/charles/data"

    val data = sc.textFile(dataFile,2)

    val res = data.filter(_.trim().length>0).map(line=>(line.trim,"")).partitionBy(new HashPartitioner(1)).groupByKey().sortByKey().keys res.saveAsTextFile("result")

     }

     }

    打包并提交运行

     

    运行结果

     

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

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

    新建scala文件avgscore

    输入代码

    import org.apache.spark.SparkContext

    import org.apache.spark.SparkContext._

    import org.apache.spark.SparkConf

    import org.apache.spark.HashPartitioner

    object AvgScore {

    def main(args: Array[String]) {

    val conf = new SparkConf().setAppName("AvgScore")

    val sc = new SparkContext(conf)

    val dataFile = "file:///home/charles/data"

    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("result")

     }

    }

    打包并运行:

     

     

    结果

     

  • 相关阅读:
    Gridview利用DataFormatString属性设置数据格式
    PowerDesigner15 逆向工程
    JS实现动态显示当前时间(12/24小时制)(转载Mr.Think)
    如何判断Javascript对象是否存在
    PHP学习(一):判断数组中的值是否包含某字符
    JavaScript显示剩余时间
    Hibernate:a different object with the same identifier value was already associated wit异常解决
    excel含文字求和
    excel去掉最高分
    excel保护
  • 原文地址:https://www.cnblogs.com/fengchuiguobanxia/p/15942671.html
Copyright © 2020-2023  润新知