一、题目描述

(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

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

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

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

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

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

 代码:

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)打包运行

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

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

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

查看:

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

2、计算平均年龄

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

运行:

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

结果:

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

 

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

相关文章:

  • 2021-09-27
  • 2022-12-23
  • 2021-11-01
  • 2021-05-11
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-01-16
  • 2021-08-11
  • 2021-10-31
  • 2022-12-23
相关资源
相似解决方案