前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >大数据入门与实战-Hive 常见SQL、技巧与问题

大数据入门与实战-Hive 常见SQL、技巧与问题

作者头像
致Great
发布2019-05-29 09:00:57
1.2K0
发布2019-05-29 09:00:57
举报
文章被收录于专栏:程序生活程序生活

1 常见SQL

  • 取数据库前100条数据
代码语言:javascript
复制
select * from table order limit 100;

-随机取100条数据

代码语言:javascript
复制
select * from table order by rand() limit 100;
代码语言:javascript
复制
select * from table limit 100;

2 常见方法

  • 宏的使用

宏可以看做是一个简短的函数,或者是对一个表达式取别名,同时可以将这个表达式中的一些值做成变量调用时传入,比较适合于做分析时为一些临时需要用到很多次的表达式操作封装一下取个简短点的别名来调用。

创建宏的语法:

代码语言:javascript
复制
CREATE TEMPORARY MACRO macro_name([col_name col_type, ...]) expression;

Hive笔记之宏(macro)

  • TRIM函数

SQL 中的 TRIM 函数是用来移除掉一个字串中的字头或字尾。最常见的用途是移除字首或字尾的空白。

各种 trim 函数的语法如下: TRIM ( [ [位置] [要移除的字串] FROM ] 字串): [位置] 的可能值为 LEADING (起头), TRAILING (结尾), or BOTH (起头及结尾)。 这个函数将把 [要移除的字串] 从字串的起头、结尾,或是起头及结尾移除。如果我们没有列出 [要移除的字串] 是什么的话,那空白就会被移除。

LTRIM(字串): 将所有字串起头的空白移除。

RTRIM(字串): 将所有字串结尾的空白移除。

  • LCASE() 函数

LCASE() 函数把字段的值转换为小写。

  • regexp_replace:正则替换
代码语言:javascript
复制
regexp_replace(string INITIAL_STRING, string PATTERN, string REPLACEMENT)

实例如下:

代码语言:javascript
复制
select regexp_replace(poi_name,'\\\\n','') 
  • size:统计大小
  • split: 分割文本,和Python差不多
  • reflect函数可以支持在sql中调用java中的自带函数,秒杀一切udf函数。
代码语言:javascript
复制
使用案例3:使用apache commons中的函数,commons下的jar已经包含在hadoop的classpath中,所以可以直接使用。

使用方式如下:

select reflect("org.apache.commons.lang.math.NumberUtils","isNumber","123") from dual;

结果:

true

hive新特性reflect函数介绍

  • length:字符串长度

hive常用函数

  • concat_ws

concat_ws()表示连接之用分隔符,它是CONCAT()的一种特殊形式。 第一个参数是分隔的参数的其余部分。分隔符是要连接的串之间加入。分隔符可以是一个字符串,如可以是参数的其余部分。如果分隔符是NULL,则结果为NULL。

  • collect_list/collect_set

将分组中的某列转为一个数组返回,不同的是collect_list不去重而collect_set去重 Hive笔记之collect_list/collect_set(列转行)

3 常见问题

  • hive严格模式:No partition predicate found for Alias

在一个分区表执行hive,除非where语句中包含分区字段过滤条件来显示数据范围,否则不允许执行。换句话说,就是用户不允许扫描所有的分区。进行这个限制的原因是,通常分区表都拥有非常大的数据集,而且数据增加迅速。如果没有进行分区限制的查询可能会消耗令人不可接受的巨大资源来处理这个表。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.05.28 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 常见SQL
  • 2 常见方法
  • 3 常见问题
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档