正在做的一个项目中,由于数据量比较大,所以数据的内容比较乱,比如说mac地址,这个地址有的数据中存在,有的数据中不存在,当通过hive进行导出数据的时候,如果存在些非法的类型的数据会造成NoSuchElement异常,经过几天的排查与摸索,终于将该隐患排除。

在hive中如果某些字段,尤其是中间的部分字段是空的值的话,很容易出错,在数据量十分大的情况下甚至于很难去查询到这种比较特殊的情况。

如图所示是部分的数据,当然为了安全起见只是截取了一点点,能够反映其特征即可,最顶部的数据可以看到是空值的连续串,甚至还出现了0和-1的值,在MAC地址中这种值应该是错误的值,需要将其从众多的数据中剔除掉,否则会对系统带来安全隐患。

由于数据为MAC地址,所以其格式比较统一,开始是通过判断是不是空来进行剔除,但是后来发现并不是想象的那么简单,有的值多个不是空但是也不是不符合的。
采用正则表达式去匹配,这样更加方便的剔除脏数据了。

select *
from data
wheremacaddress regexp "([0-9a-fA-F]{2}){6}"

如果中间存在:的话就改为:

[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}

Hive正则表达式对数据过滤相关推荐

  1. Hive之DDL数据定义

    Hive之DDL数据定义 目录 创建数据库 查询数据库 修改数据库 删除数据库 创建表 分区表 修改表 删除表 1. 创建数据库 创建一个数据库,数据库在HDFS上的默认存储路径是/user/hive ...

  2. mysql bc_正则表达式——MySQL搜索过滤

    正则表达式介绍 在数据库的数据过滤过程中只用WHERE子句和LIKE操作符都是对于已知值进行的 不管是匹配一个还是多个值,测试大于还是小于已知值,或者检查某个范围的值,都是使用已知的值 当然MySQL ...

  3. hive 导入hdfs数据_将数据加载或导入运行在基于HDFS的数据湖之上的Hive表中的另一种方法。

    hive 导入hdfs数据 Preceding pen down the article, might want to stretch out appreciation to all the well ...

  4. HIVE之 DDL 数据定义 DML数据操作

    DDL数据库定义 创建数据库 1)创建一个数据库,数据库在 HDFS 上的默认存储路径是/user/hive/warehouse/*.db.hive (default)> create data ...

  5. hive 正则表达式

    https://www.runoob.com/regexp/regexp-syntax.html 正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用 ...

  6. 大数据笔记30—Hadoop基础篇13(Hive优化及数据倾斜)

    Hive优化及数据倾斜 知识点01:回顾 知识点02:目标 知识点03:Hive函数:多行转多列 知识点04:Hive函数:多行转单列 知识点05:Hive函数:多列转多行 知识点06:Hive函数: ...

  7. Hive Select 查询数据

    Hive Select 查询数据 基本查询(Select-From) 全表和特定列查询 列别名 算术运算符 常用函数 Limit语句 Where语句 比较运算符(Between / In / Is N ...

  8. QTreeView使用总结11,数据过滤,使用代理model,简单过滤

    1,简介 有时候需要对tree内的数据按一些条件进行过滤显示,比如按搜索条件过滤,这时候就用到了代理model. 通常使用Qt提供的 QSortFilterProxyModel 类,该类实现了常见的按 ...

  9. 数据过滤(MySQL)

    数据过滤 数据过滤用在WHERE表达式里,常用的有基本查询过滤.条件查询过滤.模糊查询过滤.字段查询过滤以及正则表达式查询过滤. 一.基本查询过滤 基本查询过滤可以查询所有字段数据或指定一个字段或者多 ...

最新文章

  1. NeurIPS 2020 大变动,领域主席可拒稿20%,作者即评审,布局远程会议!
  2. c++ 怎么读取rtf文件_最全集合!Word、PPT、Excel、PDF文件转换方法大全!建议收藏...
  3. Wireshark 过滤 基本语法
  4. python第三方库安装-python第三方库安装在哪
  5. [Share].NET Reflector Add-Ins
  6. python控制电机_树莓派Python控制步进电机
  7. pb 应用 迁移 linux_功能化生物炭应用研究取得系列进展
  8. Taro+react开发(35) 实现拖动
  9. 22 PP配置-生产车间控制-定义工单类型
  10. python用matplotlib画图时将标签竖着显示
  11. python发微信工资条_帮公司财务妹子写了个“群发工资条”的Python脚本!
  12. 删除双系统linux分区,双系统时如何正确删除Linux系统
  13. SpringBoot2.0源码分析(二):整合ActiveMQ分析
  14. Apache WEB 服务器企业实战
  15. java 获取mac地址_java入门知识点和环境准备
  16. 关于URL编码/javascript/js url 编码
  17. 第03讲- 第一个Android项目
  18. 苹果ppt_从苹果发布会到抖音,火遍互联网的快闪视频如何用PPT轻松制作?
  19. 将shapefile文件加工为FBX文件、glb文件、gltf文件
  20. (一)阿里云创建自己的产品和设备

热门文章

  1. 数字基带信号的功率谱密度
  2. 博客园及相关学习地址收录
  3. 国产软件产品的一点看法
  4. 【Python中的】列表生成式和字典生成式以及内置函数
  5. leetcode解题思路分析(一百零二)874 - 880 题
  6. 几种常用的无源滤波器的特征
  7. 百度SDK移动开发平台学习 - 人体分析
  8. intellij idea 创建web 项目
  9. Maven 中文文档
  10. 为什么神经元有数千个突触,一个新皮质中的序列记忆理论(HTM算法基础)