【用户画像(十)】Flume实现实时数据采集
Flume数据采集Flume概念
Flume 是 Cloudera 提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的软件。
Flume 的核心是把数据从数据源(source)收集过来,再将收集到的数据送到指定的目的地(sink)。为了保证输送的过程一定成功,在送到目的地(sink)之前,会先缓存数据(channel),待数据真正到达目的地(sink)后,flume 再删除自己缓存的数据。
Flume 支持定制各类数据发送方,用于收集各类型数据;同时,Flume 支持定制各种数据接受方,用于最终存储数据。一般的采集需求,通过对 flume 的简单配置即可实现。针对特殊场景也具备良好的自定义扩展能力。因此,flume 可以适用于大部分的日常数据采集场景。
Flume中的角色Flume 系统中核心的角色是 agent,agent 本身是一个 Java 进程,一般运行在日志收集节点。
每一个 agent 相当于一个数据传递员,内部有三个组件:
Source:采集源,用于跟数据源对接,以获取数据;
Sink:下沉地,采集数据的传送目的,用于往下一级 agent ...
【用户画像(九)】Spark结构化流处理Nginx日志统计并分析
在开始之前先贴几个将IP地址转换成地理位置的网站
http://ip-api.com/json/117.136.12.79?lang=zh-CNhttps://opendata.baidu.com/api.php?query=120.10.33.48&co=&resource_id=6006&oe=utf8https://whois.pconline.com.cn/ipJson.jsp?ip=120.10.33.48&json=truehttp://ip.ws.126.net/ipquery?ip=117.136.12.79
将IP地址转换成地理位置
除了上述网站, 还可以使用离线的方式
1pip install geoip2 -i https://pypi.tuna.tsinghua.edu.cn/simple/
正则表达式解析Nginx日志
格式
具体实现123456789101112131415161718192021222324252627282930313233343536373839404142import re# 要匹配 ...
打野发育法
打野发育法
考研期间尽量让自己保持一个内心稳定的状态,如果暂时遇到客观环境上的困难,能解决的解决,不能解决的心态也要乐观
不要一味的埋头读书,偶尔要与人交流一下,评估一下自己的能力,不要丧失与人交流的能力,一味考研容易自闭。
如果发现自己很久没笑了,记得多笑笑,管他开不开心,先笑起来,身体行动上的变化会给自己心理上的正向暗示。
记得身体与开心是最重要的,没什么比自己健康开心的体验自己的存在更重要,有负面想法要积极排除,即使暂时状态不好,也要相信人生是场马拉松,你的处境不是永远一成不变的,即使暂时逆风,钻野发育不要送,总有一天能翻盘,所以的困难都是暂时的,对困难和一些不好的事情有一种钝感,不过度渲染。
不要过度压抑自己,期间最好要有让你值得期待的放松,可以是偶尔的一顿烧烤,可以是打一两场篮球,可以是去操场上跑跑步,开几盘王者lol,吃鸡,和朋友聚会,能让你在繁忙的生活里有所期待,多分泌一点多巴胺就不错。
打野发育法精髓
难题不会做, 那你会简单题吧, 先做简单的, 就像打游戏一样, 逆风了就要发育, 不要硬钢, 不要送, 吃兵线打野, 总有翻盘的时候.
【用户画像(八)】机器学习有监督学习通过决策树算法计算用户性别标签
决策树算法树可以分为多种类型,包括二叉树、二叉搜索树、AVL树、红黑树、B树、B+树等等。
二叉树是一种特殊的树,它的每个节点最多只有两个子节点,分别称为左子节点和右子节点。
二叉搜索树是一种二叉树,它的每个节点都满足左子节点的值小于当前节点的值,右子节点的值大于当前节点的值。这种特性使得二叉搜索树可以快速地进行查找、插入和删除操作。
AVL树是一种自平衡二叉搜索树,它通过旋转操作保持树的平衡,以保证查找、插入和删除操作的时间复杂度为O(log2n)。
红黑树也是一种自平衡二叉搜索树,它通过颜色标记节点来保持树的平衡,以保证查找、插入和删除操作的时间复杂度为O(log n)。
B树和B+树是一种多路搜索树,它的每个节点可以存储多个值,并且可以有多个子节点。B树和B+树主要用于磁盘存储数据的索引,可以有效地减少磁盘I/O操作的次数,提高数据的访问效率。
什么是决策树决策树算法是一种监督学习算法,英文是Decision tree。
决策树是一个类似于流程图的树结构:其中,每个内部结点表示一个特征或属性,而每个树叶结点代表一个分类。树的最顶层是根结点。使用决策树分类时就是将 ...
【用户画像(七)】数据挖掘之RFM,RFE,PSM标签计算
数据挖掘KMeans算法KMeans介绍
k均值聚类算法(k-means clustering algorithm)是一种迭代求解的聚类分析算法,其步骤是,预将数据分为K组,则随机选取K个对象作为初始的聚类中心,然后计算每个对象与各个种子聚类中心之间的距离,把每个对象分配给距离它最近的聚类中心。聚类中心以及分配给它们的对象就代表一个聚类。每分配一个样本,聚类的聚类中心会根据聚类中现有的对象被重新计算。这个过程将不断重复直到满足某个终止条件。终止条件可以是没有(或最小数目)对象被重新分配给不同的聚类,没有(或最小数目)聚类中心再发生变化,误差平方和局部最小。
余弦相似度什么是余弦相似度
余弦相似度算法:一个向量空间中两个向量夹角间的余弦值作为衡量两个个体之间差异的大小,余弦值接近1,夹角趋于0,表明两个向量越相似,余弦值接近于0,夹角趋于90度,表明两个向量越不相似
主要应用在数据查重场景中, 这里推荐一篇大佬的文章, 写的简单易懂
https://blog.csdn.net/u014539465/article/details/105353638/
文档1:有/问题 ...
【用户画像(六)】Spark机器学习
相关概念
机器学习(Machine Learning,简写为ML)机器学习是研究如何使计算机能够模拟或实现人类的学习功能,从大量的数据中发现规律,提取知识,并在实践中不断地完善和增强自我。机器学习是机器获取知识的根本途径,只有让计算机系统具有类似人的学习能力,才可能实现人工智能的终极目标。
深度学习(DL,Deep Learning)是机器学习领域中的一个研究方向,它被引入机器学习使其更接近于最初的目标——人工智能(AI,Artificial Intelligence)。
人工神经网络(Artificial Neural Networks,简写为ANNs)也简称为神经网络(NNs)或称作连接模型(Connection Model),它是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。
应用场景
数据挖掘:从数据中提取信息和价值
NLP 自然语言处理 naturel language processing
CV computer vision 计算机视觉 人脸识别/自动驾驶
机器学习模型 = 数据 + 机器学习算法
机器学习的分类
监 ...
【用户画像(五)】挖掘类客户价值标签(RFM模型)
RFM模型RFM模型介绍
RFM模型是一种用于客户价值分析的模型,通过对客户的消费行为进行分析,将客户分为不同的类别,以便企业更好地了解客户、制定更有效的营销策略和提高客户满意度。RFM模型的三个指标分别为最近一次购买时间(Recency)、购买频率(Frequency)和消费金额(Monetary),因此也被称为RFM分析。
最近一次购买时间(Recency)指客户最近一次购买产品或服务的时间,购买时间越近,说明客户越活跃,对企业的贡献也越大。
购买频率(Frequency)指客户在一段时间内购买产品或服务的次数,购买频率越高,说明客户对企业的忠诚度和购买意愿越强。
消费金额(Monetary)指客户在一段时间内购买产品或服务的金额,消费金额越高,说明客户的购买能力和对企业的贡献越大。
RFM计算方法
RFM模型的计算方法是将客户的消费数据按照时间顺序进行排序,然后将客户分为不同的类别,例如将客户分为高、中、低三个层次,或将客户分为ABC三个等级。不同的企业可以根据自己的实际情况来确定分级标准。
二等分
将RFM三个指标分别可以取高和低两个值,共有8个组合(111 0 ...
【用户画像(四)】封装基类分析类标签计算(销售额,支付方式)
封装基类
代码的重构代码重构是指对现有代码进行修改和优化,以改善代码的质量、可读性、可维护性和可扩展性,而不改变代码的功能。它可以帮助开发人员更好地理解和维护代码,减少代码中的冗余、重复和复杂性,提高代码的可重用性和可扩展性,从而使代码更加健壮和可靠。重构的目的是使代码更加简洁、易于理解和修改,以提高软件开发的效率和质量。
基类的抽取所有逻辑一样的步骤可以被每个标签计算任务使用,可以抽取为共同的步骤,注意参数是否相同
1、创建spark的运行环境,逻辑一样,参数不一样:appName
2、读取mysql中的标签信息(四级和五级标签的id和rule),逻辑一样,参数不一样:tag4Id
3、解析四级标签的rule,逻辑一样,参数一样
4、根据四级标签的rule读取es中的数据,逻辑一样,参数一样
5、读取计算需要用到的五级标签的rule和id,逻辑一样,参数一样
6、标签的计算,逻辑不一样,参数一样
7、结果的更新,逻辑一样,参数一样
8、结果的保存,逻辑一样,参数一样
12345678910111213141516171819202122232425262728293031323 ...
【用户画像(三)】匹配类标签计算(年龄,性别,职位)-附计算流程
标签计算流程
总结
1, 根据四级标签的ID读取四级标签和五级标签的元数据tags5_df
2, 解析四级标签的rule->rule_meta对象
按’##‘切分生成一个list
遍历list按’=‘切分’生成一个dict
将dic转化为rule_meta对象
3, 根据解析的四级标签的rule读取标签计算的需要的数据es_df
取出五级标签的rule和id与es_df进行匹配计算,得到一个标签结果new_result_df(userId, tagsId)
从结果索引tfec_userprofile_result中取出老的标签结果old_result_df
将老标签结果中属于本次计算的五级标签id集合中的id剔除,再加入newTagId生成最终的结果result_df
将最终结果result_df以upsert方式写入到es的结果索引中
年龄段标签
根据出生日期的范围划分标签
使用F.regexp_replace将birthday转化yyyyMMdd的格式
使用F.split将五级标签的rule转化start和end
使用birthday与start ...
【SQL刷题本(四)】好友数最多的人及连续3行记录的value大于某个值
体育馆的人流量案例表:
1Stadium
12345678910+---------------+---------+| Column Name | Type |+---------------+---------+| id | int || visit_date | date || people | int |+---------------+---------+visit_date 是表的主键每日人流量信息被记录在这三列信息中:序号 (id)、日期 (visit_date)、 人流量 (people)每天只有一行记录,日期随着 id 的增加而增加
编写一个 SQL 查询以找出每行的人数大于或等于 100 且 id 连续的三行或更多行记录。
返回按 visit_date 升序排列 的结果表。
查询结果格式如下所示。
示例 1:
123456789101112131415161718192021222324252627输入:Stadium 表:+------+------------+---------- ...