第二十章hive

这篇具有很好参考价值的文章主要介绍了第二十章hive。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1)

窗口函数


over(partition by 分组字段 order by 排序字段 rows between 起始行 and 结束行)


窗口计算范围的指定

需要使用rows 进行指定 计算行数

范围的确认:

默认情况下没有指定partition by 的字段,范围是全表,如果指定了partition by,范围是分组内的范围

可以通过rows指定计算行的范围大小 :rows between 起始行 and 结束行

指定计算行范围后,只对范围内的数据进行计算

select * ,count(字段) over (rows between unbounded preceding and current row )cnt from 表名

unbounded preceding: 窗口向上无限制 

current row:当前行

行数:preceding

向下指定函数: following

向下无限制:unbounded following

不同的关键字可以组合成一个范围

between 起始范围行  and 结束行 

例如:

between 2 preceding and 1 followling  包含4行数据 

范围查找是从当前行为基准  2 preceding 向上找两行  1 followling 向下一行共4行

范围顺序:起始行向上 结束行向下


order by  计算范围说明

使用了order by后自带计算范围统计数据  范围为:rows between unbounded preceding and current now

over 中的 order by 是计算数据时,先排序在计算数据, from 后的order by  是对计算后的结果排序 (可以同时出现)


2)

CTE

CTE语法类似子查询,可以将一个select语句计算的结果当成一个新的临时表使用

基本用法

with 临时表名 as(查询语句) select * from 临时表名

多个计算结果保存

with 表名1 as(查询语句),

        表名2 as (查询语句 select * from 表名1),

        表名3 as (查询语句)

select * from 表名3 join 表名2

例如 :

with  tb1 as(select * from emp)
select ename,sal from tb1

3) 爆炸函数和合并函数  (只能hive里面用)

函数的分类:

udf (user define function) 函数   数据输入多少行就返回多少行数据  计算是一进一出
 
                   hive中的大部分函数都是udf函数          

udaf函数  (user define aggregation  function)函数  输入多行数据返回一行结果  多进一出  例如 sum avg count...

udtf函数         输入一行返回多行  一进多出

3-1  explode方法

爆炸函数  可以将数组中的数据拆分多行

explode 不能直接和其他字段出现在select中

使用侧视图的方法和其他字段一起展示

侧视图 关键字 lateral view explode(explode(split(字段,'-'))) 表名(tb1) as

select 字段,字段 from 表名 lateral view explode(split(字段,'-'))tb1 as 别名

不能简单使用join进行关联数据


3-2  collect方法  合并操作

 collect_list(字段)from 表名 ;

collect_list 合并后不会去重

collect_set 合并后会对数据进行去重


4) 随机抽样

从海量数据中随机抽取部分样本数据进行计算得到的结果趋势和整体趋势一致

select ...from tb1 tablesample(bucket x OUT y ON (colname | read ( )))

x代表取哪组

y代表分成几组

(colname | read ( )) = 字段

或者  select ...from tb1 tablesample(bucket x OUT y ON  rabd())

rabd()=随机性  通过hash计算进行随机挑选

select (abs(hash(‘1aa12023-10-10’))+ round (rand()*100))%4

5)

虚拟列

hive 表中自带字段列,在进行select查询时没有指定,不会出现在查询结果中

可以在select中指定这些字段显示内容

INPUT_FILE_NAME  显示数据行所在的具体文件

BLOCK_OFFSET_INSIDE_FILE 显示数据行所在文件的偏移量

ROW_OFFSET_INSIDE_BLOCK 显示数据所在的hdfs块的偏移量

    此虚拟列需要设置:SET hive.exec.rowoffset=true; 才可使用.

虚拟列可以作为select的过滤条件使用
 文章来源地址https://www.toymoban.com/news/detail-860789.html

到了这里,关于第二十章hive的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【OpenCV】第二十章: 图像及视频去背景

    第二十一章: 图像及视频去背景 我们做目标识别、目标检测的时候经常需要去背景,比如车辆检测,就是摄像头拍摄一段车辆行驶视频,统计一下视频里面的车流量,此时我们首先要识别出图片中的车辆才能计数有多少辆车,而要识别车辆就需要先把车辆从图像中分割出来再

    2024年02月02日
    浏览(37)
  • 第二十章 : Spring Boot 集成RabbitMQ(四)

    第二十章 : Spring Boot 集成RabbitMQ(四) 前言 本章知识点:死信队列的定义、场景、作用以及原理、TTL方法的使用以及演示代码示例。 死信队列 定义:什么是死信队列? 在RabbitMQ中,并没有提供真正意义上的延迟队列,但是RabbitMQ可以设置队列、消息的过期时间,当队列或者

    2024年02月04日
    浏览(35)
  • Hive数据仓库---Hive的安装与配置

    Hive 官网地址:https://hive.apache.org/ 下载地址:http://www.apache.org/dyn/closer.cgi/hive/ 把安装文件apache-hive-3.1.2-bin.tar.gz上传到master节点的/opt/software目 录下,执行以下命令把安装文件解压到/opt/app目录中 进入/opt/app目录,为目录apache-hive-3.1.2-bin建立软件链接 即输入hive就相当于输入a

    2024年02月02日
    浏览(40)
  • 《HeadFirst设计模式(第二版)》第十章代码——状态模式

             如下图所示,这是一个糖果机的状态机图,要求使用代码实现:  初始版本:         上面的代码很明显极其不利于本维护:比如要添加一个新的状态--每次投入25分钱都能有十分之一的概率获得两个糖果。         很明显上面的代码又要添加一堆if-else了,这种

    2024年02月12日
    浏览(39)
  • hive数据仓库工具

    1、hive是一套操作数据仓库的应用工具,通过这个工具可实现mapreduce的功能 2、hive的语言是hql[hive query language] 3、官网hive.apache.org 下载hive软件包地址  Welcome! - The Apache Software Foundation https://archive.apache.org/ 4、hive在管理数据时分为元数据和真数据,其中元数据要保存在数据库中

    2024年02月04日
    浏览(34)
  • Hive数据仓库

    数据仓库(英语:Data Warehouse,简称数仓、DW),是一个用于存储、分析、报告的数据系统。 数据仓库的目的是构建面相分析的集成化数据环境,分析结果为企业提供决策支持(Decision Support)。 数据仓库本身并不“产生”任何数据,其数据来源不同外部系统; 同时数据仓库

    2024年02月15日
    浏览(39)
  • Hive数据仓库简介

    Hive起源于Facebook,Facebook公司有着大量的日志数据,而Hadoop是实现了MapReduce模式开源的分布式并行计算的框架,可轻松处理大规模数据。然而MapReduce程序对熟悉Java语言的工程师来说容易开发,但对于其他语言使用者则难度较大。因此Facebook开发团队想设计一种使用SQL语言对日

    2024年02月15日
    浏览(55)
  • 数据仓库 & Apache Hive

    目录 一、数据分析 1、数据仓库 1.1、数仓专注分析 1.2、数仓主要特征 1.3、数据仓库主流开发语言--SQL 2、Apache Hive 2.1、为什么使用Hive? 2.2、Hive和Hadoop关系 2.3、Hive架构图、各组件功能 2.4、Hive安装部署 2.4.1、Hive概念介绍 2.4.2、安装前准备     数据仓库 (英语:Data Warehous

    2024年01月22日
    浏览(46)
  • hive数据仓库课后答案

    一、 填空题 1.数据仓库的目的是构建面向     分析         的集成化数据环境。 2.Hive是基于     Hadoop         的一个数据仓库工具。 3.数据仓库分为3层,即      源数据层        、     数据应用层        和数据仓库层。 4.数据仓库层可以细分为      明细层

    2023年04月08日
    浏览(46)
  • 【Hive】——数据仓库

    数据仓库(data warehouse):是一个用于存储,分析,报告的数据系统 目的:是构建面向分析的集成化数据环境,分析结果为企业提供决策支持 特点: 数据仓库本身不产生任何数据,其数据来源于不同外部系统 数据仓库也不需要消费任何的书,其结果开放给各个外部应用使用

    2024年02月04日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包