zoukankan      html  css  js  c++  java
  • spark练习--统计xxx大学的各个少数名族的情况

    最近,有一份数据,是关于学校的数据,这个里面有所有学生的信息,今天闲来没事,我就想用spark的方式来读取文件,并且来统计这个学校的各个民族的情况,以前我用hadoop中mapReduce来计算,不得不说,又麻烦计算速度又慢
    首先,我们先看看这份数据长什么样子?

      

    我在这个操作的时候,以为数据都是全的,没想到这个有一行的数据缺了几个,当时在mapReduce,缺了的话,对数据也没影响,还是能照样跑,但是这个不行,spark里面直接报数据越界的异常,所以我就提前判断了一下长度

    package cn.wj.spark.day07
    
    import org.apache.spark.{SparkConf, SparkContext}
    
    /**
      * Created by WJ on 2017/1/5.
      */
    //要善于解决数据的不匹配的关系
    object myXJDX {
      def main(args: Array[String]): Unit = {
        val conf = new SparkConf().setAppName("myXJDX").setMaster("local")
        val sc = new SparkContext(conf)
        val rdd1 = sc.textFile("E://Test/xjdx.txt").map(line => {
          val fields = line.split(",")
          if (fields.length >= 10) {
            val mz = line.split(",")(10)
            (mz, 1)
          }else{
            (1,1)
          }
        })
        var rdd2 = rdd1.reduceByKey(_ + _)
        println(rdd2.collect().toBuffer)
      }
    }

    很简单的一段代码,不过有些时候越是简单的东西,就需要多动手

      

  • 相关阅读:
    @codeforces
    Spark源码剖析
    大数据自动化安装部署方案(一)
    Spark源码剖析
    Spark源码剖析
    Spark源码剖析
    Spark源码剖析
    Spark源码剖析
    Spark源码剖析
    Spark源码剖析
  • 原文地址:https://www.cnblogs.com/wnbahmbb/p/6254100.html
Copyright © 2011-2022 走看看