0


hive查询区分大小写

关于如何在查询hive时,区分大小写

在Hive中,默认情况下,字段名是不区分大小写的,这意味着在查询中使用大写或小写字母来引用字段名称都是可以的。其实mysql也是一样的,大部分都不会区分大小写。
但是在部分业务场景时需要对这类数据进行处理,有这么几个方法可以尝试尝试。

一、Hive的“strict”模式

启用此模式后,Hive将严格区分字段名中的大小写。
要在Hive中启用严格模式,请在Hive CLI或Beeline中执行以下命令:

set hive.cli.print.header=true;set hive.strict.checks.large.query=true;set hive.mapred.mode=strict;

ps:然而并不是那么好使,启用严格模式可能会影响性能,因为Hive需要执行更多的检查来确保查询语句符合严格模式的规则。因此,只有在需要强制区分大小写时才应该使用严格模式。

二、使用引号来区分大小写

这个方法大概稍微好用点,比如select if(“aaa” = “AAA”, 1, 0)这样的,用双引号后,hive就会识别为不一样的。如果是字段的话,可以使用反斜杠来转义特殊字符。比如: select if(t1.“name” = “AAA”, 1, 0);如果t1.name = “aaa”,则会返回0,只有大小写相同,才会返回1;

三、使用BINARY操作符来强制区分大小写

select if(BINARY ‘aaa’ = BINARY ‘AAA’, 1, 0),在字段前面加上BINARY 可以强制区分大小写,但我没怎么用过,mysql里可以这样用。hive还是推荐用双引号。

当然具体情况还得自己判断,比如复杂的关联条件+函数加工+各种case when的情况,就需要自己多多测试,找到适合的方法。

标签: hive 大数据 hadoop

本文转载自: https://blog.csdn.net/weixin_43910915/article/details/129376325
版权归原作者 十七梦 所有, 如有侵权,请联系我们删除。

“hive查询区分大小写”的评论:

还没有评论