Spark 인구 평균 연령 통계

9253 단어 빅 데이터
(1) Spark 프로그램 을 작성 하 십시오. 이 프로그램 은 로 컬 파일 시스템 에서 데이터 파일 peopleage. txt 를 만 들 수 있 습 니 다. 데이터 파일 은 여러 줄 (예 를 들 어 1000 줄 또는 100 만 줄 등) 기록 을 포함 하고 각 줄 의 기록 은 두 열 데이터 만 포함 하 며 첫 번 째 열 은 번호 이 고 두 번 째 열 은 나이 입 니 다.효 과 는 다음 과 같 습 니 다:
1 89 2 67 3 69 4 78
//    GeneratePeopleAge.scala
import java.io.FileWriter
import java.io.File
import scala.util.Random

object GeneratePeopleAge{

    def main(args:Array[String]){
            val fileWriter = new FileWriter(new File("/usr/local/spark/mycode/exercise/peopleage/peopleage.txt"),false)
            val rand = new Random()
            for (i <- 1 to 1000){//          
                fileWriter.write(i+" "+rand.nextInt(100))
                fileWriter.write(System.getProperty("line.separator"))
}
        fileWriter.flush()
        fileWriter.close()
}
}

(2) Spark 프로그램 을 작성 하여 로 컬 파일 시스템 의 데이터 파일 peopleage. txt 의 데 이 터 를 처리 하여 모든 인구 의 평균 연령 을 계산 하 십시오.
//CountAvgAge.scala
import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
object CountAvgAge{
    def main(args:Array[String]){
        if (args.length<1){
            println("Usage: CountAvgAge inputdatafile")
            System.exit(1)
}
        val conf = new SparkConf().setAppName("Count Average Age")
        val sc = new SparkContext(conf)
        val lines = sc.textFile(args(0),3)
        val count = lines.count()
        val totalAge = lines.map(line=>line.split(" ")(1)).map(t=>t.trim.toInt).collect().reduce((a,b)=>a+b)
        println("Total Age is: "+totalAge+"; Number of People is:"+count)
        val avgAge : Double = totalAge.toDouble / count.toDouble
        println("Average Age is:"+avgAge)
}
}

참조 링크:http://dblab.xmu.edu.cn/blog/1756-2/

좋은 웹페이지 즐겨찾기