首页 > 其他分享 >案例实操基础版--加载数据+数据清洗(5W条数据)

案例实操基础版--加载数据+数据清洗(5W条数据)

时间:2023-09-27 18:25:22浏览次数:45  
标签:comment string -- 5W 发送 receiver 接收 数据 sender

我看到了这个

跟着实操一下!

1、加载数据(已经提供了csv文件)

建库建表--->这个比较简单,根据文件的字段名创建合适的表;

create table msg(
    msg_time string comment "消息发送时间",
    sender_name string comment "发送人昵称",
    sender_account string comment "发送人帐号",
    sender_sex string comment "发送人性别",
    sender_ip string comment "发送人ip地址",
    sender_os string comment "发送人操作系统",
    sender_phonetype string comment "发送人手机型号",
    sender_network string comment "发送人网络类型",
    sender_gps string comment "发送人的GPS定位",
    receiver_name string comment "接收人昵称",
    receiver_ip string comment "接收人IP",
    receiver_account string comment "接收人帐号",
    receiver_os string comment "接收人操作系统",
    receiver_phonetype string comment "接收人手机型号",
    receiver_network string comment "接收人网络类型",
    receiver_gps string comment "接收人的GPS定位",
    receiver_sex string comment "接收人性别",
    msg_type string comment "消息类型",
    distance string comment "双方距离",
    message string comment "消息内容"
    );

建表语句有点儿繁琐,注意格式~

desc msg;

然后将文件上传到hdfs中:

hadoop fs -mkdir -p /message/data
hadoop fs -put chat_data-5W.csv /message/data

然后将文件数据加载到表中(从hdfs上传加载):

load data inpath '/message/data/chat_data-5W.csv' into table msg;

(不过个人觉得本地上传更加方便一点~)

对了,记得进行加载数据的验证奥!

2、ETL数据清洗转换

视频中表示有些gps数据为空,数据不合理,需要进行清洗转换成合理的数据;

上面是问题一,那么问题二就是,要根据天、小时等数据字段进行统计,但是在表中并没有明确给出天数和小时标识;

问题三,经纬度不明确,需要获取经纬度构建可视化地图;

故,需要使用ETL进行数据清洗,从而得到我们想要的格式;

有的字段处sender_gps字段内容为空:

数据不合理;

新建一个结构相同的表,存储去除问题一的数据:

create table msg_etl(
    msg_time string comment "消息发送时间",
    sender_name string comment "发送人昵称",
    sender_account string comment "发送人帐号",
    sender_sex string comment "发送人性别",
    sender_ip string comment "发送人ip地址",
    sender_os string comment "发送人操作系统",
    sender_phonetype string comment "发送人手机型号",
    sender_network string comment "发送人网络类型",
    sender_gps string comment "发送人的GPS定位",
    receiver_name string comment "接收人昵称",
    receiver_ip string comment "接收人IP",
    receiver_account string comment "接收人帐号",
    receiver_os string comment "接收人操作系统",
    receiver_phonetype string comment "接收人手机型号",
    receiver_network string comment "接收人网络类型",
    receiver_gps string comment "接收人的GPS定位",
    receiver_sex string comment "接收人性别",
    msg_type string comment "消息类型",
    distance string comment "双方距离",
    message string comment "消息内容"
    );

然后执行语句:

insert overwrite table msg_etl select * from msg where LENGTH(sender_gps)>0;

执行完毕:

数据验证:

有数据!

数据清洗成功!

另外两个就是调用函数date函数、hour函数、还有split函数分割取值的事儿啦,比较简单,就不说了(当然,这个也简单);

标签:comment,string,--,5W,发送,receiver,接收,数据,sender
From: https://www.cnblogs.com/liuzijin/p/17733008.html

相关文章

  • 记录--Vue3 + Fabricjs 定制国庆专属头像
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助生在国旗下,长在春风里!国庆将至,采黎为大家带来定制头像2.0(国庆头像),让我们用代码的形式为祖国庆生!欢迎大家点赞收藏加关注哦前言想看效果或者想定制春节头像的小伙伴请直奔效果区域;想一睹定制头像2.0小工具的......
  • CS61A: Structure and Interpretation of Computer Programs 笔记
    FunctionsEnvironmentDiagrams:左侧为Frames,右侧为Objects。Name类似变量名,它们存储在Frame中,指向各种各样的Objects,比如值或函数。一个Name同时只能指向一个Object,但可以改变自身指向,不受“类型”影响(Name根本没有固定的“类型”概念)。Assignment的过程是计算'='......
  • golang-waitgroup
    说明golang通过waitgroup来实现并发控制,用法跟java的CountDownLatch 效果一样 WaitGroup的使用场景和方法我们通过goroutine运行一个或者一组任务,需要关心这组任务执行完了进行通知WaitGroup如同它的字面意思,就是等待一组goroutine运行完成,主要有三个方法组成:Add(de......
  • 2023/09/27
    四则运算课堂测试三 1、可定制(数量):输入大的出题数量值,测试一下系统是否崩溃,反向查找系统是否优化的余地;2、定制操作数的个数、定制是否有乘除法、定制是否有括号(随机加入)、定制数值范围(确定操作数的取值范围);3、定义方法实现错题集、错题重练并记录错题的次数功能。4、能处理......
  • 敏捷开发的实施要素和实现敏捷的实际改进
    ​敏捷开发的实施要素如下:个体和交互:胜过过程和工具。可以工作的软件:胜过面面俱到的文档。客户合作:胜过合同谈判。响应变化:胜过遵循计划。敏捷开发过程是一个增量的、迭代的过程,责任人、开发人员和用户要能够共同维持其步调稳定延续。实现敏捷的实际改进可以从以下方面入......
  • 分布式事务 (转载于ZT)
    分布式事务分布式事务是什么分布式事务是一种在分布式系统中确保数据一致性的机制。在分布式系统中,数据通常被存储在多个节点上,每个节点都可以独立地执行事务操作。分布式事务需要保证所有节点在执行事务期间的数据操作是一致的,即要么所有节点都成功地执行了事务,要么所有节点......
  • 1.go安装和包管理工具
    下载地址安装之后,自动添加系统环境变量PATH=>"C:\Go\bin"查看go版本信息goenv使用七牛云设置golang环境,代理goenv-wGO111MODULE=ongoenv-wGOPROXY=https://goproxy.cn,direct保管理工具go1.11之后,使用goMod管理go初始化gomodeinitnameuser......
  • 中国电信 NB-IoT 翻频方案及操作指导
    中国电信800MNB-IoT翻频方案说明:翻频前频点分布如下图所示,对应中心频点为879.4/.6/.8MHz或879.5/.7/.9MHz翻频前频点信息:BAND52504,2506,2508  翻频后频点下移分布如下图所示,对应中心频点为869.1/869.3/869.5MHz位置,翻频后频点信息:BAND52401,2403,2405 ......
  • Java动手动脑
    动手动脑Ⅰ程序为什么出错:因为构造函数仅有有参构造。如果类提供了一个自定义的构造方法,将导致系统不再提供默认构造方法。 试验publicclassMain{publicstaticvoidmain(String[]args){dn=newd();System.out.println(n.t);n=newd......
  • 创建一个日期与字符串之间处理的工具
    packagecn.com.maple.utils;importorg.apache.logging.log4j.LogManager;importorg.apache.logging.log4j.Logger;importorg.joda.time.DateTime;importorg.joda.time.format.DateTimeFormat;importorg.joda.time.format.DateTimeFormatter;/***@authorLiDY*@desc......