zoukankan      html  css  js  c++  java
  • spark统计单位时间内访问量

    一、文件截图

     处理数据量:804kb

     二、流程分析

    根据分割符获取时间,再利用分组统计单位时间内的访问量,控制台输出(时间,访问量)形式

    三、代码

    package rdd.operator.transform
    
    import java.text.SimpleDateFormat
    import java.util.Date
    
    import org.apache.spark.rdd.RDD
    import org.apache.spark.{SparkConf, SparkContext}
    
    object Spark06_RDD_Operator_Transform_groupby {
    
      def main(args: Array[String]): Unit = {
        val sparkConf: SparkConf = new SparkConf().setMaster("local[*]").setAppName("Operator")
        val sc = new SparkContext(sparkConf)
    
        val rdd: RDD[String] = sc.textFile("datas/apache.log")
    
        val timeRDD: RDD[(String, Iterable[(String, Int)])] = rdd.map(
          line => {
            val datas: Array[String] = line.split(" ")
            val time: String = datas(3)
            val sdf = new SimpleDateFormat("dd/MM/yyyy:HH:mm:ss")
            val date: Date = sdf.parse(time)
            val sdf1 = new SimpleDateFormat("HH")
            val hour: String = sdf1.format(date)
            (hour, 1)
          }
        ).groupBy(_._1)
        timeRDD.map{
          case(hour,iter)=>{
            (hour,iter.size)
          }
        }.collect().foreach(println)
    
        sc.stop()
      }
    
    }

    四、运行截图

  • 相关阅读:
    Flask-SQLAlchemy
    with 与 上下文管理器
    使用@property
    C++:如何把一个int转成4个字节?
    尝试理解Flask源码 之 搞懂WSGI协议
    qt setData()和data()
    我使用过的Linux命令之sftp
    linux下如何使用sftp命令
    Linux环境下安装JDK
    CentOS 6.5 配置IP地址的三种方法
  • 原文地址:https://www.cnblogs.com/dd110343/p/14314996.html
Copyright © 2011-2022 走看看