zoukankan      html  css  js  c++  java
  • [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/

  • 相关阅读:
    shell的执行顺序问题
    七层负载均衡——HAProxy
    不要自以为是码农
    SSL协议运行机制
    Linux启动流程
    MIM协议与Base64编码
    Adele的生活
    你值得拥有:25个Linux性能监控工具
    [Zabbix] 如何实现邮件报警通知以及免费短信报警通知
    php.ini中date.timezone设置分析
  • 原文地址:https://www.cnblogs.com/suwy/p/9350907.html
Copyright © 2011-2022 走看看