栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

hive中nvl()方法的使用,并记录一次报错信息

hive中nvl()方法的使用,并记录一次报错信息

Argument type mismatch ‘map’: The first and seconds arguments of function NLV should have the same type, but they are different: “map” and “map” 一、报错解决

当使用hive执行一段sql的时候,出现了这样一段报错,查看了详细的代码,定位到了错误的代码行

,nvl(l6.label,map())
,nvl(l7.label,map())
,nvl(l13.label,map())
,nvl(l16.label,map())
,nvl(l19.label,map())
,nvl(l20.label,map())
,nvl(l21.label,map())
,nvl(l32.label,map())
,nvl(l33.label,map())
,nvl(l34.label,map())
,nvl(l35.label,map())
,nvl(l36.label,map())
,nvl(l37.label,map())

在进行一连串的标签定义的时候出现了这个错误

报错信息

Argument type mismatch 'map': The first and seconds arguments of function NLV should have the same type, but they are different: "map" and "map"

这个报错大概意思是在map类型不一样,NLV的两个参数应该是一样的类型

检查了数据类型之后,发现确实,第一个参数类型是map,第二个参数类型是map,所以这个在使用nvl的时候需要两个参数的map类型是一致的。

二、NVL的使用

那么看一下nvl怎么使用

查看一下NVL的使用

desc function nvl;

意思就是当value为null的时候返回default_value,当不为null的时候返回value

1. 基本数据类型的时候
select nvl("string",1);
select nvl(1.0,"string");

当基本数据类型不一致的时候是否可以

可以看到基本数据类型是没有问题的

2. map()类型

那么map类型是否可以

select nvl(map("string","string"), map(1,1));
select nvl(map("string",1), map());
select nvl(map("string","string"), map());

可以看出来,map类型如果前后不一样的类型是不可以的

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/775671.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号