Spark学习(四)---人口密度监控案例

本文介绍了使用Spark进行人口密度监控的案例,包括点击流日志的统计分析(PV、UV、TopN)以及利用IP地址查询实现地理位置定位,探讨了通过日志数据推断人流密度的方法和实现思路。
摘要由CSDN通过智能技术生成

这次我们介绍人口密度计算的案例
在案例之前会有spark的scala统计点击流日志代码小案例。


1. 击流日志分析案例

1.1需求

下面的系列数据主要包括用户IP,浏览网址,时间,请求方式等,统计PV,UV,和被访问的TopN,
下面是一条样例数据

194.237.142.21 - - [18/Sep/2013:06:49:18 +0000] "GET /wp-content/uploads/2013/07/rstudio-git3.png HTTP/1.1" 304 0 "-" "Mozilla/4.0 (compatible;)"
1.2代码实现

统计PV量,设置相同的K-V(PV,1),通过reduceByKey进行累加

import org.apache.spark.{SparkConf, SparkContext}
import org.apache.spark.rdd.RDD

//todo:需求:利用spark分析点击流日志数据------PV总量
object PV {
  def main(args: Array[String]): Unit = {
        //1、创建sparkConf对象
        val sparkConf: SparkConf = new SparkConf().setAppName("PV").setMaster("local[2]")
        //2、创建sparkContext对象
          val sc = new SparkContext(sparkConf)
        //3、读取数据文件
          val data: RDD[String] = sc.textFile("D:\\data\\access.log")
        //4、获取pv总量
          println(data.count())
        //5、关闭sparkContext
        sc.stop()
  }
}

统计UV数量,通过

import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}

object UV {
  def main(args: Array[String]): Unit = {
    //todo:构建SparkConf和 SparkContext
    val sparkConf: SparkConf = new SparkConf().setAppName("UV").setMaster("local[2]")
    val sc: SparkContext = new SparkContext(sparkConf)


    //todo:读取数据
    val file: RDD[String] = sc.textFile("d:\\access.log")


    //todo:对每一行分隔,获取IP地址
    val ips: RDD[(String)] = file.map(_.split(" ")).map(x=>x(0))


    //todo:对ip地址进行去重,
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值