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