Hive表的基础查询操作

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

Hive的表查询

1. 前置准备

实验环境

  1. Oracle Linux 7.4
  2. Java1.8.0_144
  3. Hadoop2.7.4
  4. Hive2.1.1

实验数据

查看完userinfo1.txt文件内容

Hive表的基础查询操作

查看完userinfo2.txt文件内容

Hive表的基础查询操作

数据文件stocks.csv内容

stocks.csv内容以逗号“,”分隔,依次记录股票代码、股票交易日期、股票开盘价、股票开盘价、股票最低价、股票收盘价、股票交易量和股票成交价。

Hive表的基础查询操作

2. 实验流程

2.1 创建表

创建外部表userinfos存放数据

CREATE external TABLE userinfos (
uname STRING,
salary FLOAT,
family ARRAY <STRING>,
deductions MAP <STRING,FLOAT>,
address STRUCT<street:STRING,city:STRING,state:STRING,zip:INT>
) PARTITIONED BY (country String)
row format delimited fields terminated by '\001'
collection items terminated by '\002'
MAP KEYS terminated by '\003'
LINES terminated by '\n'
stored as textfile;

Hive表的基础查询操作

查询userinfos表结构信息,可以看到表的字段信息及分区等的信息。

Hive表的基础查询操作

2.2 导数据

从本地数据存储位置加载数据到userinfos表中,其中country是分区字段。

-- 01
load data local inpath '/root/experiment/datas/hiveselect/userinfo1.txt' overwrite into table userinfos partition (country='China');
-- 02
load data local inpath '/root/experiment/datas/hiveselect/userinfo2.txt' overwrite into table userinfos partition (country='America');

Hive表的基础查询操作

2.3 表查询

查询userinfo表被导入数据后,在HDFS平台上的存储情况。

Hive表的基础查询操作

查询userinfos表内容信息,并将每条数据所在的分区展示。

Hive表的基础查询操作

2.4 再建表

创建stock表,做查询

-- stock
CREATE EXTERNAL TABLE stocks(
exchanger STRING,
symbol STRING,
ymd STRING,
price_open FLOAT,
price_high FLOAT,
price_low FLOAT,
price_close FLOAT,
volume INT,
price_adj_close FLOAT)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';

Hive表的基础查询操作

从本地数据存储位置hiveselect文件夹下加载数据到stocks表中。并查看导入数据后在HDFS中的存储情况。

load data local inpath '/root/experiment/datas/hiveselect/stocks.csv' overwrite into table stocks;

Hive表的基础查询操作

2.5 表查询

2.4.1 基本查询

LIMIT应用:按指定字段查询前3条数据。

select uname,salary from userinfos limit 3;

分区查询:查询userinfo表中分区为“China”下的所有指定字段的内容。其中指定的字段为:uname、salary、country。

select uname,salary,country from userinfos where country='China';

Hive表的基础查询操作

嵌套Select语句、别名应用:其中语句 “address.street AS stree”中,address.street代表查询的字段,stree代表这个字段,即用stree查询与用address.street查询是一个效果。而t代表整个“SELECT address.street AS street,address.city AS city FROM userinfo”语句,由from指定查询的t表中street字段。

from (SELECT address.street AS street,address.city AS city FROM userinfo) t  select t.street;

Hive表的基础查询操作

2.4.2 分组查询

分组查询:按股票交易码symbol进行分组,并求出每组股票的平均关盘价格。

SELECT symbol,avg(price_close) FROM stocks GROUP BY symbol;

Hive表的基础查询操作

2.4.3 连接查询

条件查询 内连接:查看IBM公司和苹果(APPL)公司收盘价每日价格对比表。要求只显示IBM公司和苹果(APPL)公司共同存在的收盘价格比对表。

select a.ymd,a.price_close,b.price_close from
(select ymd,price_close from stocks where symbol='APPL') a,
(select ymd,price_close from stocks where symbol='IBM') b
where a.ymd=b.ymd;

Hive表的基础查询操作

Hive表的基础查询操作

条件查询 左外连接:查看IBM公司和苹果(APPL)公司收盘价每日价格对比表。要求苹果(APPL)公司内容全显示,IBM公司有对应数据显示,没有为NULL。

select a.ymd,a.symbol,b.symbol,a.price_close,b.price_close
from (select * from stocks where symbol='APPL') a
LEFT OUTER JOIN (select * from stocks where symbol='IBM') b
ON a.ymd=b.ymd;

Hive表的基础查询操作

条件查询 右外连接:查看IBM公司和苹果(APPL)公司收盘价每日价格对比表。要求IBM公司内容全显示,苹果(APPL)公司有对应数据显示,没有为NULL。

select a.ymd,a.symbol,b.symbol,a.price_close,b.price_close
from (select * from stocks where symbol='APPL') a
RIGHT OUTER JOIN (select * from stocks where symbol='IBM') b
ON a.ymd=b.ymd;

Hive表的基础查询操作

条件查询 全连接:查看IBM公司和苹果(APPL)公司收盘价每日价格对比表,要求IBM公司与苹果(APPL)公司所有数据全显示,数据未对应位置用NULL值补齐。

select a.ymd,a.symbol,b.symbol,a.price_close,b.price_close
from (select * from stocks where symbol='APPL') a
FULL OUTER JOIN (select * from stocks where symbol='IBM') b
ON a.ymd=b.ymd;

Hive表的基础查询操作

3. 总结

子查询

Hive支持的子查询是放在FROM字句中的,因为每个表的FROM字句必须要有一个别名,所以子查询也就有了一个别名。在子查询中的SELECT列表名必须是唯一的,这些SSELECT列表名在外层的SELECT查询中就像表中的列一样是可用的。子查询可以是含有UNION的查询表达式,Hive支持任意层次的子查询。
连接查询
连接查询(join)是将两个表在共同数据项上相互匹配的那些行合并后进行查询的操作.HQL的连接查询分为内连接(Inner Join) 、左外连接(left join)、右外连接(right join)、全连接和半连接(本篇未涉及)

申明:文章仅做记录,涉及侵权内容请联系删除文章来源地址https://www.toymoban.com/news/detail-500654.html

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

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

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

相关文章

  • web自动化之基础内容(全网最详细,selenium环境准备和selenium工具操作)-第一天

    (1)pycharm中要安装selenium 也可用pip指令安装pip install selenium (2)安装chromedriver 根据你自己的chrome的版本,下载对应的chromedriver chrome版本在114前,下载的链接 http://chromedriver.storage.googleapis.com/index.html chrome版本超过114,下载的链接 Chrome for Testing availability 本人的chrome版本为

    2024年02月04日
    浏览(43)
  • 【OpenAI】Python:基于 Gym-CarRacing 的自动驾驶项目(1) | 前置知识介绍 | 项目环境准备 | 手把手带你一步步实现

     猛戳!跟哥们一起玩蛇啊  👉 《一起玩蛇》🐍  💭 写在前面:  本篇是关于自动驾驶专业项目 Gym-CarRacing 的博客。GYM-Box2D CarRacing 是一种在 OpenAI Gym 平台上开发和比较强化学习算法的模拟环境。 本专栏提供完整可运行代码,包括环境安装的详细讲解,将通过 \\\"理论+实践

    2024年02月03日
    浏览(82)
  • 【Python】OpenAI:基于 Gym-CarRacing 的自动驾驶项目(1) | 前置知识介绍 | 项目环境准备 | 手把手带你一步步实现

     猛戳!跟哥们一起玩蛇啊  👉 《一起玩蛇》🐍  💭 写在前面:  本篇是关于自动驾驶专业项目 Gym-CarRacing 的博客。GYM-Box2D CarRacing 是一种在 OpenAI Gym 平台上开发和比较强化学习算法的模拟环境。 本专栏提供完整可运行代码,包括环境安装的详细讲解,将通过 \\\"理论+实践

    2024年02月02日
    浏览(86)
  • 脑电EEG代码开源分享 【1.前置准备-静息态篇】

    希望了解更多的道友点这里 0. 分享【脑机接口 + 人工智能】的学习之路 1.1 . 脑电EEG代码开源分享 【1.前置准备-静息态篇】 1.2 . 脑电EEG代码开源分享 【1.前置准备-任务态篇】 2.1 . 脑电EEG代码开源分享 【2.预处理-静息态篇】 2.2 . 脑电EEG代码开源分享 【2.预处理-任务态篇】

    2024年02月02日
    浏览(42)
  • HIVE基本查询操作(二)——第1关:Hive排序

    第1关:Hive排序 任务描述 本关任务: 2013 年 7 月 22 日买入量最高的三种股票。 相关知识 为了完成本关任务,你需要掌握:1. Hive 的几种排序;2. limit 使用。 hive的排序 ① order by order by 后面可以有多列进行排序,默认按字典排序( desc :降序, asc (默认):升序); order by 为全局排

    2023年04月24日
    浏览(43)
  • 数据结构实验---顺序表的合并---链表的基本操作---重点解析约瑟夫问题

    实验的写法多种多样,但本文并未采用 #define 定义容量的写法,这样写已经是很老旧过时的写法。所有实验主体采用均为动态开辟,后续如果利用 C++ 来写或许会应用更多语法… 本篇展示数据结构的两个实验 其中,重点分析约瑟夫问题 实验中代码的命名风格等均与下方博客

    2024年02月16日
    浏览(62)
  • SQL Server数据库 -- 表的基础查询

    一、单表查询基本结构 二、单表查询结构语法 select 聚合函数 where 模糊查询 order by group by having 三、多表查询基本结构 四、多表查询结构语法 内连接 自连接 外连接 五、总结         学习了数据库,在以后公司等地方,你可能不会用到创建数据库或者表格,但是你一定会使

    2024年02月11日
    浏览(96)
  • ②【MySQL表操作】 数据库表的创建、查询、修改、删除

    个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ 数据库表中的数据类型 : 数值类型: TINYINT :小整数 SMALLINT :大整数 MEDIUMINT :大整数,范围大于SMALLINT

    2024年02月06日
    浏览(63)
  • 【kubernetes】集群架构介绍与基础环境准备

    前言 :二进制部署kubernetes集群在企业应用中扮演着非常重要的角色。无论是集群升级,还是证书设置有效期都非常方便,也是从事云原生相关工作从入门到精通不得不迈过的坎。通过本系列文章,你将从虚拟机准备开始,到使用二进制方式从零到一搭建起安全稳定的高可用

    2024年02月10日
    浏览(50)
  • JVM-环境准备&性能指标&基础知识

    环境准备性能指标基础知识 环境准备 JDK — 工具 JDK(Java Development Kit) 是用于开发 Java 应用程序的软件开发工具集合,包括了 Java 运行时的环境(JRE)、解释器(Java)、编译器(javac)、Java 归档(jar)、文档生成器(Javadoc)等工具。简单的说我们要开发 Java 程序,就需要

    2024年02月07日
    浏览(58)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包