- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ETL实验报告
ETL实验报告
姓名:
学号:
创建数据源
在数据源/文件/文本文件-分隔符分割目录下依次添加文本文件户籍.txt、电话号码.txt、电话记录.txt、地理维.txt。
创建工程、新建转换,并装载文本文件数据源,如下图所示:
创建工程函数
calIDcard:实现由15位身份证到18位身份证的转变
calAge:由身份证计算实际年龄
calSex:由身份证计算性别
calBirth:由身份证计算出生年月日
calPID:由身份证号计算省编号
calPhone:由手机号码计算运营商编号
calTime:把通话记录的通话时长转换成以秒为单位的数字
以上函数的实现源码如下:
输出错误数据
错误数据包括年龄缺失、年龄错误、性别缺失、性别错误。在过滤条件中利用自定义函数过滤即可,过滤条件为:is_empty(Age)==true || Age!=calAge(IDCard) || is_empty(Sex)==true || Sex!=calSex(IDCard),如图所示:
户籍信息修正
在高级清洗转换中利用自定义函数把15位身份证转换为18位,把年龄缺失、年龄错误、性别缺失、性别错误修正,如下图所示:
删除重复行
原数据中可能存在重复数据,利用数据转换中的删除重复行可删除重复数据,同时可以在错误输出中得到重复的数据。
加载电话号码信息
加载电话号码信息,然后利用高级清洗转换把电话号码信息中的15位身份证号码转换成18位身份证号码。
连接身份证号码和电话信息
利用内连接,把户籍信息和电话号码信息通过身份证号码连接起来,如下:
生成电话信息事实表
把户籍信息和电话号码信息连接起来以后,通过数据清洗和转换得到省编号、出生日期、运营商编号,然后将信息装载到文本文档,即得到电话信息事实表,如下图所示:
装载电话记录表
装载电话记录信息,并通过数据清洗转换把通话时长转换成以秒为单位的数字。过滤掉通话时长小于2秒的数据,并通过聚合计算出两个人之间的平均通话时长。
连接通话记录中电话号码与身份证号码
分别通过两次连接,把主叫手机号与主叫身份证号码连接,把被叫手机号与被叫身份证号码连接。
生成人际关系表
把连接后的数据,按照主叫手机号、通话平均时长(单位:秒)按照降序排序,即得到人际关系表,并按个人联系度从高到低次序排列个人联系人。如图:
使用心得
该工具支持java自定义函数,使得工具灵活而且功能强大。通过可视化设计使操作非常方便,使流程图简洁易懂。
文档评论(0)