采集微博数据ETL项目的处理以及相关技术点
作者:互联网
中小型数据仓库项目的标准开发流程
以数据流来驱动项目开发
以已下载微博数据ETL项目为例
- 基于定的微博数据目录,拿到该目录下所有的输入数据的文件路径。(技术问题done)
- 基于文件路径,读取文本文件的数据。
- 解析读取出来的文件数据,成为结构化数据-微博博文对象抽象类-ContentPojo,最终获取对应的对象集合。(技术问题done)
- 解析读取出来的文件数据,成为结构化数据-用户对象抽象类-UserPojo, 最终获取对应的对象集合。(技术问题done)
- 将两个抽象的对象集合,进行文本化数据落地,形成待load到hive的数据文件。
- load两个类型的文件数据到hive的两张表当中。(提前创建两张表,均为外表)
- 测试数据及查询结果的准确性。
Java操作正则
- java对正则的核心抽象
2.Pattern:模式匹配引擎
-
Pattern.compile(regex)来获Pattern对象
-
Pattern.match(input)来获取matcher对象
3.Matcher:获取匹配结果
-
Matcher获取数据的3种方式
- Matches:全部匹配
- lookingAt:前向匹配
- find:任意位置匹配均可
- 取值APi:Matcher.group来获取匹配到的值
正则匹配当中的贪婪匹配规则
- 当正则表达式匹配到多个输入时,采集贪婪算法,总是拿最后一个、即最长匹配值作为最终的结果
抽象封装的分类
-
方法抽象或是字段抽象
-
类抽象
-
库抽象-log4j,neo4j
-
组件抽象-spring,ssm,springcloud
-
子系统抽象-hdfs,mapreduce等更大级别的抽象
如何完成方法或字段抽象
- 先写测试类
- 确定输入与输出的抽象
-
- Input
- Output
- 抽象成方法及其修饰符
-
方法名称
- 见名知义如:getMatchContent,getMatchGroupContent,getRegexContent。
-
是类方法还是成员方法
- 一个方法解决战斗,不需要依赖外部的成员对象,则使用静态方法。
-
如果还需要依赖外部成员对象,则必须使用成员方法。
-
抽象成类
- 基于方法的功能特性,起一个见名知义、有一定扩展的更高级抽象的名称,比如:RegexUtil
封装分类-按其用途
-
1、技术型封装-工具类
-
2、业务型封装-业务管理类
解析特殊情况数据的处理方法
-
1、经验处理法
-
2、case by case,one by one
数据分析题目录中的权重打法
-
- 拿出所有的候选因子
-
- 对候选因子,先定性、再定量
- 定性:定性原则即为物以稀为贵。
- 定量:目前没有一个比较成熟、公认的搞法,更多是靠业务专家的主观定量后,再进行review来最终确定。可以通过常识验证一下
- 对候选因子,先定性、再定量
一般性用户数据分析的分类
- 活跃度分析
- 行为特征分析
作者:da9268f7a1bd
链接:https://www.jianshu.com/p/9bdba7661ee3
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
标签:匹配,对象,方法,采集,微博,抽象,Pattern,数据,ETL 来源: https://blog.csdn.net/m0_58421245/article/details/121089879