1 zisuu

尚未进行身份认证

暂无相关简介

等级
TA的排名 7w+

1.线性表

有效的括号给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。分析:class Solution { public static HashMap<Character,Character>map = new HashMap<Character,Character>(){{ put('{'

2020-05-30 16:55:29

大数据之spark大型电商平台分析平台(一)--项目前言

电商分析平台该项目是我根据尚硅谷大数据电商分析平台视频做的笔记,总共分成了大概十个需求,每个需求我都用一篇文章来解析文章目录项目整体概述课程简介本课程是一套完整的企业级电商大数据分析系统,在当下最为热门的Spark生态体系基础上构建企业级数据分析平台,本系统包括离线分析系统与实时分析系统,技术栈涵盖Spark Core,Spark SQL,Spark Streaming与Spark性能调优,并在课程中穿插Spark内核原理与面试要点,能够让学员在实战中全面掌握Spark生态体系的核心技术框架.

2020-05-26 17:34:23

电商平台分析平台----需求十:总结

实时计算部分总结实时计算部分无非是对某一个需求进行统计,整体框架:1.改变基本数据结构,变为(key,1L),可以用map或者transform进行改变2. 累加操作,三种选择reduceByKey—适合用于实时更新数据库数据updateStateByKey[]----适合用于较长时间的实时累加统计,需要设置checkPointreduceByKeyAndWindow—适合用于短时间内的实时累加统计,如一小时内数据封装入库,常用keyCountStream.

2020-05-26 16:50:16

电商平台分析平台----需求九:实时统计之最近一小时广告点击量实时统计

做什么?通过Spark Streaming的窗口操作(reduceByKeyAndWindow)实现统计一个小时内每个广告每分钟的点击量需求解析:关于reduceByKeyAndWindow的知识详情看这篇文章步骤解析1.转化key为dateTime_adid //1.转化key为dateTime_adid val key2TimeMinute=adRealTimeFilterDstream.map{ case(log)=>{ val logS

2020-05-26 16:39:27

电商平台分析平台----需求八:实时统计之各省份广告top3排名

做什么?根据需求七中统计的各省各城市累计广告点击量,创建SparkSQL临时表,通过SQL查询的形式获取各省的Top3热门广告。需求分析在需求七中,我们已经实时统计了各省各城市广告的点击量,并且key的格式是(date_province_city_adid),现在我们只需要把Key变为(date_province_city),再用reduceByKey进行累加最后利用sparkSQL创建临时表,进行排序即可步骤分析:1.转化key的格式 //1.转化key为date_province_a

2020-05-26 15:45:10

电商平台分析平台----需求七,九前置知识

Window Operations先来看看什么叫窗口滑动 def main(args: Array[String]): Unit = { val list=Array(1,2,3,4,5,6); val window=list.sliding(2); for (r<-window){ println(r.mkString(";")); } }-----------------1;22;33;44;55;6可以想像,有一个窗口,把两个

2020-05-26 16:01:05

电商平台分析平台----需求七:实时统计之各省各城市广告点击量实时统计

做什么?收到kafka的数据,实时统计各省各城市各广告的广告点击量需求分析kafka收到的数据仍然是需求六中的数据,思路也是相同的,即将数据变成(key,1L),再去改变总的数量不同的地方是:key现在变为 (date_province _city_adid)数量的统计不能再用reduceByKey,而是改为sparkStreaming中的updateStateByKey,其作用是对当前批次的数据和以往的数据进行一个累加更新操作,从而避免一直查询数据库,(相似的还用window滑动操作)

2020-05-26 14:57:47

电商平台分析平台----需求六:实时统计之黑名单机制

做什么?从Kafka获取实时数据,对每个用户的点击次数进行累加并写入MySQL,当一天之内一个用户对一个广告的点击次数超过100次时,将用户加入黑名单中。需求解析1.先从kafka得到数据,数据格式是:(timestamp province city userid adid),2.接着统计该批次的数据中不同用户对同一个广告的点击数量,即需要以timestamp_userId_adid为key进行reduceByKey3.更新mysql4.从mysql中

2020-05-26 14:03:33

电商平台分析平台----需求五:计算给定的页面访问流的页面单跳转化率

做什么?我们需要去分析每一次的页面访问流程,也就是用户从进入网站到离开网站这个流程中所访问的页面顺序,也就是一个session中的页面访问顺序。假如一个session的页面访问顺序为1,2,3,4,5,那么他访问的页面切片就是1_2,2_3,3_4,4_5,如果得到所有session的切面切片m_n,就可以计算每一种页面切片的个数,即count(m_n),就可以计算每一个页面单跳转化率。需求解析这个需求不是很难,只需要统计一下两个页面间的跳转数量除于总的跳转数即可.问题的关键在于如何转化数据,如下

2020-05-25 20:37:58

电商平台分析平台----需求四:Top10热门品类的Top10活跃Session统计

做什么?统计需求三中得到的Top10热门品类中的Top10活跃Session,对Top10热门品类中的每个品类都取Top10活跃Session,评判活跃Session的指标是一个Session对一个品类的点击次数。需求解析需要什么?Top10热门品类中的Top10活跃Session依据什么排序?一个Session对一个品类的点击次数需要怎样的原始数据?用户点击的商品为top10商品的其中一个----------filter算子怎么做?步骤解析获取点击过Top10品类的所有用

2020-05-25 17:37:42

电商平台分析平台----需求三:热门top10商品

做什么?在符合条件的用户行为数据中,获取点击、下单和支付数量排名前10的品类。在Top10的排序中,按照点击数量、下单数量、支付数量的次序进行排序,即优先考虑点击数量。需求分析首先我们想要得到的是在符合条件的action中,统计排名前十的热门商品.并且排名的依据是根据点击数量、下单数量、支付数量的次序进行排序的.所以通过逆推:top10商品–>(id,(clickCount=83|orderCount=67|payCount=63))------>分别统计(id,clickCount=

2020-05-25 16:30:12

电商平台分析平台----需求二:按照比列随机抽取session

做什么?在符合过滤条件的session中,按照时间比例随机抽取100个session。当存在若干天的数据时,100个session抽取指标在天之间平均分配,在一天之中,根据某个小时的session数量在一天中总session数量中的占比决定这个小时抽取多少个session一个小时要抽取的session数量 = (这个小时的session数量/这一天的session数量) * 这一天要抽取的session数量需求解析明确一个小时抽取多少session后(假设为N个),根据数量产生N个随机数,这N个随机

2020-05-25 15:18:34

需求一:各个范围Session步长、访问时长占比统计

做什么?统计各个范围Session步长、访问时长占比统计访问时长:session的最早时间与最晚时间之差。访问步长:session中的action操作个数。即:统计出符合筛选条件的session中,访问时长在1s3s、4s6s、7s9s、10s30s、30s60s、1m3m、3m10m、10m30m、30m,访问步长在1_3、4_6、…以上各个范围内的各种session的占比需求分析:对应的类:case class UserVisitAction(date: String,

2020-05-25 11:52:23

1.项目搭建及,commons模块解析,离线实时数据准备

项目搭建github下载源码使用idea创建maven项目,并创建如下四个模块复制源码中的pom.xml,修改你的环境版本号复制mock,commons模块到你的项目中common模块解析conf基于文件的配置生成器,会读取resources下的commerce.properties,并返回所有配置信息 */object ConfigurationManager { // 创建用于初始化配置生成器实例的参数对象 private val params = new

2020-05-26 18:19:52

2.项目需求解析

前言本篇文章讲解的是电商分析平台中的各个模块需求,需求总体概述一 离线数据分析动作表解析:通过埋点采集到的用户行为数据被存储在了动作表里,我们关注用户的四种行为,即点击、搜索、下单、购买,用户每执行一次上述操作,就会产生一条日志,之后按照一定的时间单位(例如一天)被导入动作表中,也就是说,动作表中的一条数据对应用户的一次行为(点击、搜索、下单或者购买中的一种)二 实时数据分析实时数据主要用于统计用户点击广告需求详解用户访问Session分析用户访问session,是在电商平

2020-05-23 16:57:47

flume--入门概念与配置详解

目录Flume概述Flume概述Flume定义Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统。Flume基于流式架构,灵活简单。2 Flume的优点可以和任意存储进程集成。输入的的数据速率大于写入目的存储的速率,flume会进行缓冲,减小hdfs的压力。flume中的事务基于channel,使用了两个事务模型(sender + receiver),确保消息被可靠发送。Flume使用两个独立的事务分别负责从soucrce到channel

2020-05-21 20:50:58

spark(三)--spark-streaming---(Dstream图文详解,基于IDEA开发)

前言这篇文章主要讲述了spark几大核心内置模块中的spark-streaming(流数据的处理),主要围绕Dstream的入门,创建,转化展开,图文详解spark其他核心模块的系列文章:spark(一)–spark-core–RDD入门实战spark(二)–spark-core—RDD进阶知识(图文详解,基于IDEA开发)目录 Spark Streaming概述Dstream入门案例及解析Dstream的创建–各个数据源hdfs数据源RDD队列 kafka数据源自定义数据源

2020-05-20 17:39:54

spark(二)--spark-core---RDD进阶知识(图文详解,基于IDEA开发)

val words=sc.textFile("in/word.txt").flatMap(_.split("\t")).map((_,1)) val count=words.reduceByKey(_+_); //查看words的Lineage println(words.toDebugString); //查看“count”的Lineage println(count.toDebugString);

2020-05-19 22:31:47

spark(一)--spark-core--RDD入门实战(详解各大api,基于IDEA开发)

目录RDDRDD创建操作RDD转化操作_0. 入门经典程序,统计字符在项目的父目录下创建in目录,创建word.txt def main(args: Array[String]): Unit = { //上下文 var conf=new SparkConf().setAppName("WordCount").setMaster("local"); var sc=new SparkContext(conf); sc.setLogLevel("ERROR")

2020-05-18 22:01:02

使用docker-compose搭建hadoop伪分布式,并用springboot进行读写访问

前言本人初学Hadoop,在不懂得什么是完全分布式,什么是伪分布式,以及hdfs的具体架构得情况下,就盲目的跟着网上的教程搭建hadoop集群.最后结果是,环境搭起来了,springboot客户端却无法访问,然后反反复复重装hadoop环境,却不懂得问题所在.最后重新学习hadoop原理,才发现了突破口.这篇文章的内容经过实践,是可以成功运行并访问的.docker的宿主机是阿里云的linux centos系统遇到的问题是,springboot可以访问namenode,但是无法真正的上传文件,只能在

2020-05-17 11:55:53

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 原力新人
    原力新人
    在《原力计划【第二季】》打卡挑战活动中,成功参与本活动并发布一篇原创文章的博主,即可获得此勋章。