[spark程序]统计人口平均年龄(HDFS文件)(详细过程)

Posted suwy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[spark程序]统计人口平均年龄(HDFS文件)(详细过程)相关的知识,希望对你有一定的参考价值。

一、题目描述

(1)请编写Spark应用程序,该程序可以在分布式文件系统HDFS中生成一个数据文件peopleage.txt,数据文件包含若干行(比如1000行,或者100万行等等)记录,每行记录只包含两列数据,第1列是序号,第2列是年龄。效果如下:

1    89
2    67
3    69
4    78

(2)请编写Spark应用程序,对分布式文件系统HDFS中的数据文件peopleage.txt的数据进行处理,计算出所有人口的平均年龄。

二、实现

1、在分布式文件系统HDFS中生成一个数据文件peopleage.txt

1)启动hadoop

start-dfs.sh

技术分享图片

2)在HDFS中创建程序存放目录

hdfs dfs -mkdir -p /swy/resource/peopleage

3)编辑生成peopleage.txt的程序GeneratePeopleAgeHDFS.scala

 技术分享图片

 代码:

import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import scala.util.Random

object GeneratePeopleAgeHDFS {
    def main(args: Array[String]) {
        val outFile = "hdfs://localhost:9000/swy/resource/peopleage/peopleage.txt"
        val conf = new SparkConf().setAppName("GeneratePeopleAgeHDFS").setMaster("local[2]")
        val sc = new SparkContext(conf)
        val rand = new Random()
        val array = new Array[String](1000)
        for(i <- 1 to 1000) {
            array(i-1) = i +" "+ rand.nextInt(100)
        }
        val rdd = sc.parallelize(array)
        rdd.foreach(println)
        rdd.saveAsTextFile(outFile)
    }
}

4)打包运行

技术分享图片

技术分享图片

 5)可以看到HDFS中已经有了peopleage.txt文件

查看:

技术分享图片

2、计算平均年龄

使用前面 创建的CountAvgage.scala文件

运行:

技术分享图片

结果:

技术分享图片

 

原文:http://dblab.xmu.edu.cn/blog/1756-2/

以上是关于[spark程序]统计人口平均年龄(HDFS文件)(详细过程)的主要内容,如果未能解决你的问题,请参考以下文章

平均年龄计算公式是啥?

计算人口平均年龄

美国这几年的人口死亡数据

Spark实例-通过HDFS文件实时统计

Spark编程题

SQL语句按年龄分组,统计各个年龄的人数