美文网首页Hive
Hive--查找表中类型转换错误的数据

Hive--查找表中类型转换错误的数据

作者: 撸码小丑 | 来源:发表于2018-11-29 23:03 被阅读31次

问题描述

Hive数据库对数据格式及具体的内容并不关心,只有在数据被读出时才会与定义的Schema进行转换。那这个时候就会出现数据类型转换的问题

准备测试表和数据

create table test_null (id int, age string) 
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
STORED AS TEXTFILE;
1,23
2,24c
3,32d
4,30
5,NULL

将测试数据加载到test_cast表中,查看表中的数据


image.png

表结构为id和age两个字段均为int类型,在Load的示例数据中age列有非数值类型的数据,查看表数据时会看到如上截图类型转换失败显示为NULL。

解决方案

Hive本身没有机制来校验数据的有效性,如果我们想检索出表中类型转换异常的数据,则可以通过nvl和cast两个函数来结合判断数据是否转换失败了。

select id,nvl(cast(age as int), "error") age from test_cast;

将类型异常的数据插入到新的表中,SQL如下:

create table  test_exception as
 select * from (select id,nvl(cast(age as int), 'error') age from test_cast) as b where b.age='error';

同样也可以只是用cast来进行查找,SQL如下:

create table test_exception as 
select * from (select id,nvl(cast(age as int), age) age from test_cast) as b where b.age is null;

相关文章

  • Hive--查找表中类型转换错误的数据

    问题描述 Hive数据库对数据格式及具体的内容并不关心,只有在数据被读出时才会与定义的Schema进行转换。那这个...

  • 数据结构 第七章 查找

    [TOC] 第七章 查找 名词解释 查找表 : 同一类型的数据元素构成的集合称为查找表 关键字: 是数据元素中某个...

  • 数据结构之查找

    数据结构之查找 查找概论 查找表 定义 查找表(Search Table)是同一类型的数据元素(或记录)的集合。 ...

  • 数据结构--有序表查找

    一、查找表1、定义A.查找表(table):由同一类型的数据元素(或记录)构成的集合,由于“集合”中的数据元素间存...

  • 查找

    静态查找表:只作查找操作的查找表 动态查找表:在查找过程中同时插入查找表中不存在的数据元素,或者从查找表中删除已经...

  • mysql学习

    创建数据表 插入数据 修改数据 删除某行数据 查找数据 重命名 删除表 插入行 year类型 date类型 tim...

  • 算法 查找 笔记

    查找就是根据给定的某个值,在查找表中确定一个其关键字等于给给定值的数据元素(或记录)。 查找表是由同一类型的数据元...

  • 查找算法

    1、查找 查找表(Search Table)是由同一类型的数据元素构成的集合。关键字(key)是数据元素中某个数据...

  • 数据结构与算法——查找算法

    一、定义 查找:根据给定的某一个值,在查找表中确定一个其关键字等于给定值的数据元素。查找表:是有同一类型的数据元素...

  • 从零开始学swift之基本类型

    浮点数和类型转换 浮点数 2.类型转换在swift中没有类型的自动转换,因为很多错误都可能因为类型隐式转换导致错误...

网友评论

    本文标题:Hive--查找表中类型转换错误的数据

    本文链接:https://www.haomeiwen.com/subject/jjwaqqtx.html