spark 案例-IP经纬度热力图分析

本文介绍了如何使用Spark进行IP经纬度热力图分析,包括需求分析、数据处理和编码实现。通过日志信息和城市IP段数据,统计热点经纬度和热门城市,主要涉及Spark RDD和Spark SQL的方法。
摘要由CSDN通过智能技术生成

IP经纬度热力图分析

(一) 需求分析

在互联网中,我们经常会见到城市热点图这样的报表数据,例如在百度统计中,会统计今年的热门旅游城市、热门报考学校等,并将这样的信息显示在热点图中。
因此,我们需要通过日志信息(运行商或者网站自己生成)和城市ip段信息来判断用户的ip段,统计热点经纬度、热门城市等指标。
接下来我们使用spark来实现上述功能。

(二) 数据分析

●数据
log.format
ip.txt

在这里插入图片描述
在这里插入图片描述
●日志数据20190121000132.394251.http.format
在ip日志信息中,我们只需要关心ip这一个维度就可以了,其他的不做介绍
●ip地址规则数据ip.txt

(三) 编码实现-RDD

●思路分析
1.创建SparkContext
2.加载ip规则文件
3.获取ip起始范围(2)、结束范围(3)、城市信息(4,5,6,7,8)、经度(13)、维度(14)
4.加载日志文件
5.将日志的ip分割出来
6.将ip转为数字,并使用二分查找去ipRules中查找出相应的城市信息,记为((城市,经度,纬度),1)
7.将((城市,经度,维度),1)进行聚合得出统计结果

sparkcore 方法

package day06

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


/**
 * Author:SZX
 * Date:2020/10/23 20:06
 * Version:1.0
 * Description: 
 */
object ipmap2 {
   

  def main(args: Array[String]): Unit = {
   
    //创建Spark程序入口
    val conf: SparkConf = new SparkConf().setAppName("demo").setMaster("local[*]")
    val sc = new SparkContext(conf)
    //设置日志级别
    sc.setLogLevel("WARN")
    //加载ip.txt文件
    val file: RDD[String] = sc.textFile("E:\\test\\ip.txt")
    //按照分隔符进行切分
    val spliFile: RDD[Array[String]] = file.map(_.split("\\|"))
    //提取所需字段
    val ipRuler: RDD[(String, String, String, String, String)] = spliFile.map(x => (x(2), x(3), x(4) + x(5) + x(6) + x(7) + x(8), x
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值