背景:前几天拿来apache日志,用hive的正则进行匹配,发现匹配出来的字段算是NULL,但是我用RegexBuddy工具显示能够匹配的到啊!例子如下(我拿正常的apache日志来比较,我的apache日志格式被更改过)1、apache日志格式:127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0"            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-20 11:24:22
                            
                                60阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            最近遇到一个需求:求出各个部分工资排名前十的同事。由于数据量太大,在、不能只能用mysql(速度太慢了),还就用hive进行查询。找到了一个分组排序函数 row_number() 语法: row_number() over(partition by 分组列 order by 排序列 desc) 注意:在使用 row_number() over()函数时候,over()            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-05-22 10:02:55
                            
                                285阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            Hive 数据分析函数:分析函数、窗口函数、增强 Group 三类,及用于辅助表达的 over 从句。产生背景常规 SQL 语句中,明细数据和聚合后的数据不能同时出现在一张表中,而此类需求又常见。函数分类分析函数(不支持与 window 子句联用,即 ROWS BETWEEN)1、NTILE:序列分析函数,用于数据分片排序,对数据分片并返回当前分片值。(即对数据集分块,如第 1 块,第 2 块等)            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-14 11:44:25
                            
                                216阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            目录1.使用正则表达式条件爬取 2.贪婪爬取:在爬取数据的时候尽可能的多爬取数据。3.非贪婪爬取:在爬取数据的时候尽可能的少爬取数据。4.正则表达式在字符串方法中的使用5.正则表达式中的分组规则: 6.捕获分组:利用正则表达式捕获内容,并拿出来再用一次。(默认)1.使用正则表达式条件爬取非捕获分组:分组之后不需要再用本组数据,仅仅是把数据括起来(不占用分组)(?:regex)            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-03 00:18:28
                            
                                35阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            文章目录1.使用方式第一种:Hive交互shell第二种:Hive JDBC服务第三种:Hive命令2.基本操作管理数据库与管理表管理数据库:管理数据库表:普通表外部表分区表分桶表修改表hive表中加载数据hive表中的数据导出(查询导出(内外部表均可,可指定导入到本地或HDFS))Hive的查询语法a. SELECTb.常用函数c.LIMIT语句d.WHERE语句e.比较运算符(BETWEEN            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-18 23:35:52
                            
                                59阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            查询(一)Select...From+Where+分组查询[WITH CommonTableExpression (, CommonTableExpression)*]    (Note: Only available starting with Hive 0.13.0)
SELECT
FROM
WHERE
GROUP BY
ORDER BY
  [CLUSTER BY col_list            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-12 09:59:04
                            
                                117阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            文章目录一.Hive聚合运算 - GROUP BY二.窗口函数 - 概述1.窗口函数 - 排序2. 窗口函数 - 聚合3.窗口函数 - 分析4.窗口函数 - 窗口定义(必须使用order by) 一.Hive聚合运算 - GROUP BYGROUP BY用于分组Hive基本内置聚合函数与GROUP BY一起使用如果没有指定GROUP BY子句,则默认聚合整个表除聚合函数外,所选的其他列也必须包含            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-12 21:31:51
                            
                                324阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            正则表达式的子表达式(分组)不是很好懂,但却是很强大的文本处理工具。1 正则表达式热身匹配电话号码// 电话号码匹配
// 手机号段只有 13xxx 15xxx 18xxxx 17xxx
System.out.println("18304072984".matches("1[3578]\\d{9}"));   // true
// 座机号:010-65784236,0316-3312617,02            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-27 17:48:18
                            
                                182阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            通过将部分正则表达式用括号括住来实现分组捕获的用法大部分人都很熟悉,如/.+(\d+).+/捕获字符串中的所有数字部分,然后通过组号就可以抽取出各分组匹配的字符文本或者通过反向引用的方式对分组中的文本进行替换。但是除了不同的分组用法以外,正则表达式引擎还提供了一些高级的分组功能,下面介绍部分比较常用的特殊分组:1、非捕获分组( non-capturing group)使用语法:(?:re            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-09-15 23:15:11
                            
                                211阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            1、ROW_NUMBER,RANK(),DENSE_RANK()
语法格式:row_number() OVER (partition by COL1 order by COL2 desc ) rank
partition by:类似hive的建表,分区的意思;
order by :排序,默认是升序,加desc降序;
rank:表示别名
表示根据COL1分组,在分组内部根据 COL2排序,而此函数计            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-08-22 16:13:51
                            
                                45阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            分组排序 最主要的区别就是如果两个分数相同,排名是否同列以及排名是否相同。这个方法仅在mysql8.0以后,hive或其他数据库支持直接看图:原始表原表如上,想要的结果如下从图中可以发现:row_number函数:如果并列但名次反而不相同,但是后续的名次是连续的rank函数:如果并列则名次相同,但是后续的名次会不连续dense_rank函数:如果并列则名次相同,但是后续的名次是连续的ntile函数            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-09-20 06:13:25
                            
                                123阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
                 窗口函数(window functions)与普通聚合函数(aggregation functions)的区别普通聚合函数是将多行具备相同属性的字段聚合为一行,处理的结果中不会对处理前的明细呈现出来。而窗口函数可以认为是sql 增强函数,可以既展示集合后的数据结果,又可以展示聚合前的数据明细。下面一个简单的例子对比下://表结构+-----------+------------+----            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-24 10:19:42
                            
                                104阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            创建测试表create table tmp_ma(
class  string comment'品类',
brand  string comment'品牌',
sales  int comment'销量'
)插入测试数据insert into tmp_ma(class,brand,sales) values('手机','小米',10);
insert into tmp_ma(class,brand            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-08-07 19:56:04
                            
                                32阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            背景hive的分组和组内排序—语法语法:row_number() over (partition by 字段a order by 计算项b desc ) rankrank是排序的别名 partition by:用于给结果集分组,如果没有指定那么它把整个结果集作为一个分组,它和聚合函数不同的地方在于它能够返回一个分组中的多条记录,而聚合函数一般只有一个反映统计值的记录。; order by :排序,            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-12 19:07:03
                            
                                486阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            1、优化说明   Hive中未经优化的分组聚合,是通过一个MapReduce Job实现的。Map端负责读取数据,并按照分组字段分区,通过Shuffle,将数据发往Reduce端,各组数据在Reduce端完成最终的聚合运算。   Hive对分组聚合的优化主要围绕着减少Shuffle数据量进行,具体做法是map-side聚合。所谓map-side聚合,就是在map端维护一个hash table,利用            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-12 12:39:23
                            
                                86阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
             
:<artist>Smile</artist>组合继第一张专辑《<album>Smile</album>》之后又推出的一张舞曲大碟。我想在这样含有两个不同标注实体(艺术家、专辑名)的的句子当中统计动词的频率。    X?X,一次或一次也没有X*X,零次或多次X+X,一次或多次X{n}X,恰好 n&            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-01 14:21:26
                            
                                24阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            无名、有名分组(1)正则表达式—无名分组从正则表 达式的左边开始看,看到的第一个左括号“(”表示表示第一个分组,第二个表示第二个分组, 依次类推。正则表达式须要注意的是,有一个隐含的全局分组(就是索引号为0的分组),就是整个正则 表达式匹配的结果缓存(2)正则表达式—有名分组命名分组就是给具体有默认分组编号的组另外再起一个别名,方便之后的引用。 命令分组的语法格式以下: (?P正则表达式)索引语法            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-02 09:47:01
                            
                                147阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            2.1 Group By  
 语句 
 
GROUP BY  
  语句通常会和聚合函数一起使用,按照一个或者多个列队结果进行分组,然 
 
 
后对每个组执行聚合操作。 
 
  
 
1 
   )案例实操: 
 
  
(1)计算  
   emp  
   表每个部门的平均工资 
 
  
hive (default)> select t.deptno, avg(t.sal) av            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-08-15 15:41:16
                            
                                21阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
             窗口函数简单说就是在执行聚合函数时指定一个操作窗口。窗口函数执行顺序基本靠后,在全局排序order by和limit之前执行1.相关函数说明OVER():指定分析函数工作的数据窗口大小,这个数据窗口大小可能会随着行的变而变化。重点解释下OVER()函数,OVER()函数中包括三个函数:包括分区partition by 列名、排序order by 列名、指定窗口范围rows betwee            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-14 11:44:53
                            
                                226阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            以下摘自:regexp正则表达式:提取目标内容在hive环境中相关的函数有如下三个:regexp :主要用在where子句中,用来选择内容regexp_extract :用在select 子句中,用来从目标内容中提取指定样式内容regexp_replace :用在select 子句中,用来将目标内容的特定部分替换成指定的内容1. regexpselect 
case when company re            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-06-16 22:40:51
                            
                                757阅读