ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

SparkSql分析法律服务网站数据

2022-05-17 14:03:45  阅读:199  来源: 互联网

标签:count 网页 网站 SparkSql 法律 sql law page sparkSql


当用户访问网站页面时,系统会记录用户访问网站的日志,其中记录了用户 IP 、用用 户 访问的时间、用访问内容等多项属性的信息,

各个属性的说明如表所示

数据准备

1 、用创建数据库 law

2 、用在 law 数据库下创建 law 表

3 、用将数据导入到 law 表

 数据统计分析

1 、用网页类型统计 - 根据网页类型分组统计       网页类型是指 page_type 中的前 3 位数字,统计每个网页类型对应的数目

2 、用网页中带有?记录的统计及各类别占比 - 根据网页类型分组统计       统计 visiturl 字段包含 ?,    占比是各类统计数与总数运算,保留四位小数

3 、用点击次数分析 - 根据点击次数分组       统计内容位点击次数、用用户数、用用户百分比,记录百分比       定义字段 click_num 为点击数,注意点击数是每个用户的访问记录

4 、用网页排名分析 - 根据 visiturl 字段分组统计       统计字段 visiturl 中包含 .htmlhtml , 各网页的点击数,进行排序

代码:

package org.hnsw

import org.apache.spark.sql.SparkSession
import org.apache.spark.sql.functions._

object DFPractice {
  def main(args: Array[String]): Unit = {
    //初始化sparksession
    val sparkSql = SparkSession.builder().appName("JXQ").master("local")
      .enableHiveSupport().getOrCreate()
    sparkSql.sql("use law")
    sparkSql.sql("select count(1) from law").show() //总计路数
    // 1、网页类型统计 (网页类型,记录数,百分比 page_type字段取前3字符 ) (substring(page_type,1,3)))
    sparkSql.sql("select substring(page_type,1,3) as page_type,count(*) as count,round(count(*)*100/17139,2) as bfb from law where page_type is not null group by substring(page_type,1,3)").show()
    // 2、 网页中带有?记录的统计及各类别占比 (网页类型,记录数,百分比) 网页字段 visiturl
    //1)求得 visiturl 带有?的总记录数
    sparkSql.sql("select count(1) from law where  visiturl like '%?%'").show()
    //2)基于网页类型分组 统计 (网页类型,记录数,百分比)
    sparkSql.sql("select substring(page_type,1,3) as page_type,count(*) as count,round(count(*)*100/17139,2) as bfb from law where page_type is not null and visiturl like '%?%' group by substring(page_type,1,3)").show()
    // 3、点击次数分析 () 点击次数,用户数,用户百分比,记录百分比
    //统计相同点击次数的用户数
    //1)总记录数
    sparkSql.sql("select count(1) from law").show()
    //2)用户总数
    sparkSql.sql("select count(distinct(userid)) as user_num from law").show()
    //3)求每个用户点击次数
    sparkSql.sql("select count(userid) as click_num,userid from law group by userid order by click_num desc" ).createOrReplaceTempView("temp_table")
    //构建临时表
    sparkSql.sql("select click_num,count(userid) as user_count,round(count(userid)*100/4041,2) as userbfb, round(count(userid)*click_num*100/17138,2) as bfb from temp_table group by click_num").show(100)
    // 4、网页排名分析(网址,点击次数) 过滤包含.html的字段网页
    sparkSql.sql("select visiturl, count(*) as count from law where visiturl like '%.html%' group by visiturl order by count desc").show()

  }

}

演示

标签:count,网页,网站,SparkSql,法律,sql,law,page,sparkSql
来源: https://www.cnblogs.com/857weir09432/p/16280511.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有