Hive的查找语法

基本语法格式:

select [all | DISTINCT ] a.id, a.sname, a.age from student a join student02 b on a.id = b.id # 匹配函数 where a.age >=18 # 条件语句 group by a.age having a.age >=18 # 分组,having:分组后的筛选条件 order by a.age # 全局排序 sort by a.age #局部排序,当reducetask = 1 时,功能与order by一致 distribute by a.age # 分桶 a.age % [reducetask的个数]余数一致的分到一个桶里 cluster by a.age #分桶并排序 limit 100 #仅查看结果中的前100行数据

详解举例

匹配函数

1.内连接(inner join)join = inner join

select ... from t1 inner join t2 on t1.id=t2.id;

 

2.外连接(outer join)

输出结果一般是两个表的所有列

select ... from t1 left outer join t2 on t1.id=t2.id; #左外连接 select ... from t1 right outer join t2 on t1.id=t2.id; #右外连接 select ... from t1 full outer join t2 on t1.id=t2.id; #全外连接

 

3.半连接(semi join)

输出结果一般是其中一个表的列

select ... from t1 left semi join t2 on t1.id=t2.id; #左半连接,仅输出左表中的数据 select ... from t1 right semi join t2 on t1.id=t2.id; #右半连接,仅输出右表中的数据

 

注意:

1)join只支持等值连接

原因:map端的key不好设置

select ... from t1 join t2 on t1.id=t2.id; # 支持

select ... from t1 join t2 on t1.id=t2.id+1; # 不支持

2)join只支持and连接,不支持or连接

原因:and连接:map端的key为id+age;但是or连接的话,map端的key设置太复杂;

select ... from t1 join t2 on t1.id=t2.id and t1.age=t2.age; # 支持

select ... from t1 join t2 on t1.id=t2.id+1 or t1.age=t2.age; # 不支持

3)join支持多表关联

多表关联是通过同一个字段(id)关联的时候,只需要一个mr,否则就转换成多个;

select ... from t1

join t2 on t1.id=t2.id

join t3 on t1.id=t3.id; # 支持

 

 

排序函数

1.order by(全局排序)

不管reducetask设置为何值,都是对输出结果中的某列进行全局排序;

select ... from student order by age;

 

2.sort by(局部排序)

当reducetask = 1,相当于全局排序,= order by

当reducetask = 3,将结果随机分成三部分,在每一个部分中进行排序;

select ... from student sort by age;

结果:

0001 张三 15

0002 李四 16

 

0004 王五 14

0003 孟七 17

 

0007 黄一 16

0005 李四 19

 

3.distribute by(分桶不排序)

select ... from student distribute by age; # 此时reducetask = 3

结果:

0001 张三 15 # age%3=0

 

0002 李四 16 # age%3=1

0005 李六 19

0007 黄一 16

 

0003 孟七 17 # age%3=2

0004 王五 14

 

4.cluster by(分桶且排序)

select ... from student cluster by age; # 此时reducetask = 3

结果:

0001 张三 15 # age%3=0

 

0002 李四 16 # age%3=1

0007 黄一 16

0005 李六 19

 

0004 王五 14 # age%3=2

0003 孟七 17

 

注意:

  • cluster by 不能与 sort by同时使用;
  • 当分桶字段与排序字段一致时,cluster by = distribute by(分桶) + sort by(排序)
  • 当分桶字段与排序字段不一致时,不能使用cluster by:

elect ... from student distribute by age sort by id;

结果:

0001 张三 15 # age%3=0

 

0002 李四 16 # age%3=1

0005 李六 19

0007 黄一 16

 

0003 孟七 17 # age%3=2

0004 王五 14

 

 

 

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/475417.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

动词ing基本用法_动词ing的用法

动词ing的用法2020-09-14 11:41:52文/董月表示现在(指说话人说话时)正在发生的事情;习惯进行:表示长期的或重复性的动作,说话时动作未必正在进行;表示渐变的动词有:get,grow,become,…

LeetCode 1498. 满足条件的子序列数目(排序+二分查找+快速幂)

1. 题目 给你一个整数数组 nums 和一个整数 target 。 请你统计并返回 nums 中能满足其最小元素与最大元素的 和 小于或等于 target 的 非空 子序列的数目。 由于答案可能很大,请将结果对 10^9 7 取余后返回。 示例 1: 输入:nums [3,5,…

Matlab编程学习笔记【待续】

最近想用Matlab进行数据分析,算法性能测试,平时由于用的是C、C,因此很多习惯都一时改不了,这里自己列出来一些Matlab中明显不同的地方。 矩阵单元元素访问方式:A(1,2)---A[1][2]选取矩阵某个行或者列:A(:,1…

Hive的视图

创建视图 create view my_view as select * from student; 注意: hive中的视图仅仅是存储了SQL语句的快捷方式,在查询的时候才执行;hive中的视图只有逻辑视图,没有物化视图;hive中的视图只支持查询,不支…

animation 先执行一次 在持续执行_这一次,彻底弄懂 JavaScript 执行机制

本文来源:ssssyokihttps://juejin.im/post/6844903512845860872不论你是javascript新手还是老鸟,不论是面试求职,还是日常开发工作,我们经常会遇到这样的情况:给定的几行代码,我们需要知道其输出内容和顺序…

[scikit-learn 机器学习] 5. 多元线性回归

文章目录1. 多元线性回归2. 多项式回归3. 正则化4. 线性回归应用举例(酒质量预测)4.1 数据预览4.2 模型验证5. 梯度下降法本文为 scikit-learn机器学习(第2版)学习笔记1. 多元线性回归 模型 yαβ1x1β2x2...βnxny \alpha\bet…

mac笔记本修改 mysql 的密码

第一种 mysql版本:5.7.17 1.首先我们要关闭mysql服务 sudo /usr/local/mysql/support-files/mysql.server stop 2.我们要用安全模式启动mysql sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables 3.使用root账号登录mysql服务 /usr/local/mysql/bin/mysql …

LeetCode 831. 隐藏个人信息

1. 题目 给你一条个人信息字符串 S,它可能是一个 邮箱地址 ,也可能是一串 电话号码 。 我们将隐藏它的隐私信息,通过如下规则: 电子邮箱 定义名称 name 是长度大于等于 2 (length ≥ 2),并且只包含小写…

oa项目经验描述_简历中项目经验模版

项目名称:OA(办公自动化)开发工具:MyEclipse 8.6 , Oracle 11g , Tomcat 6.0.18项目描述(1, SSH框架版):OA主要功能模块分为首页Portlet展示、协同审批、协同工作、日历、资源管理、知识中心、新闻中心、通讯录、系统管理。是一套很好的办公自…

分离

web2.0到处都是分离与聚合的思想: jquery实现了表现层的行为与内容的分离 zendframework为首的mvc架构实现了逻辑架构的控制、模块、表现层的分离 mysql为例的master-slave架构实现了服务与备份的分离 hadoop为首的虚拟化架构实现了单点计算与群体计算的结合 css实现…

hive-内置函数(常用内置函数汇总)

show functions; #查看所有内置函数,共271个 show function sum; #查看sum函数的描述信息 show function extended sum; #查看内置函数的描述信息和举例的使用方法 举例数据表:stu id name address score credit 01 huang hebi,changzhou,dalian …

LeetCode 828. 统计子串中的唯一字符(中心扩展)

1. 题目 我们定义了一个函数 countUniqueChars(s) 来统计字符串 s 中的唯一字符,并返回唯一字符的个数。 例如:s “LEETCODE” ,则其中 “L”, “T”,“C”,“O”,“D” 都是唯一字符,因为它们只出现一次,所以 coun…

钢笔的保养

钢笔其实很泼辣的不需要用心的保养,但如果太不注意了,也会早早损毁了一支好笔。所以,为了自己方便地更长久些,还是要保养一下。保养的方法很简单,就是: 用前先浸,墨水不混,定期清洗。…

hive - 自定义函数(超详细步骤,手把手的交)

用Java开发自定义函数,步骤: 1.eclipse上新建一个工程project(db2019); 2.导jar依赖包: db2019右键 --build path --configure... --add library --user library --new(新建一个library(hive2.3.2_jar)) --add ext…

LeetCode 1053. 交换一次的先前排列

1. 题目 给你一个正整数的数组 A(其中的元素不一定完全不同),请你返回可在 一次交换(交换两数字 A[i] 和 A[j] 的位置)后得到的、按字典序排列小于 A 的 最大可能排列。 如果无法这么操作,就请返回原数组…

bootstrap 树形表格渲染慢_layUI之树状表格异步加载组件treetableAsync.js(基于treetable.js)...

概述后台框架中使用树状表格是非常常用的操作,layUI本身并没有这种组件。 第三方的treetable.js做到了完美的实现,但是不能实现在双击时异步加载数据,本文就是站在了巨人的肩膀上实现的异步加载的树状表格~1. 使用说明本组件基于treetable.js…

EchoServer

using System;using System.Net.Sockets;using System.IO;using System.Net; namespace ConsoleApplication1{ class EchoServer { public static void Main11() { // TcpListener监听端口1234 IPAddress ipAd IPAddress.Parse(&qu…

hive - 解析 json

内置函数:get_json_object(json串,解析路径) 解析路径说明: $ :跟对象 . :子对象 [] :数组下标 * :所有 举例: 数据样例: {"movie":"1190","rate":"4.8","timestamp":…

[scikit-learn 机器学习] 6. 逻辑回归

文章目录1. 逻辑回归二分类2. 垃圾邮件过滤2.1 性能指标2.2 准确率2.3 精准率、召回率2.4 F1值2.5 ROC、AUC3. 网格搜索调参4. 多类别分类5. 多标签分类5.1 多标签分类性能指标本文为 scikit-learn机器学习(第2版)学习笔记逻辑回归常用于分类任务 1. 逻…

libsvm回归参数寻优cgp_【lightgbm/xgboost/nn代码整理二】xgboost做二分类,多分类以及回归任务...

1.简介该部分是代码整理的第二部分,为了方便一些初学者调试代码,作者已将该部分代码打包成一个工程文件,包含简单的数据处理、xgboost配置、五折交叉训练和模型特征重要性打印四个部分。数据处理部分参考:代码整理一,这…