join left semi_HIVE--left semi join

实验:

hive> select * from b1;

OK

1       003     20170511

1       004     20170512

1       005     20170513

2       006     20170514

3       007     20170515

Time taken: 0.041 seconds

hive> select * from b2;

OK

1       005     20170513

2       006     20170514

3       007     20170515

Time taken: 0.049 seconds

hive> select * from b1 a left outer join b2 b on a.id=b2.id; ----左边表的数据都列出来了,如果右边表没有对应的列,则写成了NULL值。如果左边的主键在右边找到了N条,那么结果也是会叉乘得到N条。hive不支持’left join’的写法。

OK

1       003     20170511        1       005     20170513

1       004     20170512        1       005     20170513

1       005     20170513        1       005     20170513

2       006     20170514        2       006     20170514

3       007     20170515        3       007     20170515

hive> select * from b1  left semi join b2  on b1.id=b2.id; ---在关联字段b2表里有的,b1表都展现出来,如果主键在右边表中存在,则打印,否则过滤掉,相当于in

OK

1       003     20170511

1       004     20170512

1       005     20170513

2       006     20170514

3       007     20170515

hive> select * from b1 left outer join b2 on b1.id=b2.id and b1.dat=b2.dat;

OK

1       003     20170511        NULL    NULL    NULL

1       004     20170512        NULL    NULL    NULL

1       005     20170513        1       005     20170513

2       006     20170514        2       006     20170514

3       007     20170515        3       007     20170515

hive> select * from b1 left semi join b2 on b1.id=b2.id and b1.dat=b2.dat;---在b2表有的都展现出来

OK

1       005     20170513

2       006     20170514

3       007     20170515

再如:

hive> select * from b1;

OK

1       003     20170511

1       004     20170512

1       005     20170513

2       006     20170514

3       007     20170515

4       008     20170518

Time taken: 0.042 seconds

hive> select * from b2;

OK

1       005     20170513

2       006     20170514

3       007     20170515

Time taken: 0.053 seconds

hive> select * from b1 left outer join b2 on b1.id=b2.id and b1.dat=b2.dat;

OK

1       003     20170511        NULL    NULL    NULL

1       004     20170512        NULL    NULL    NULL

1       005     20170513        1       005     20170513

2       006     20170514        2       006     20170514

3       007     20170515        3       007     20170515

4       008     20170518        NULL    NULL    NULL

hive> select * from b1 left semi join b2 on b1.id=b2.id and b1.dat=b2.dat;---更能证明只展现关联条件在右表有的数据,相当于in

OK

1       005     20170513

2       006     20170514

3       007     20170515

总结:

hive不支持’left join’的写法;

hive的left outer join:如果右边有多行和左边表对应,就每一行都映射输出;如果右边没有行与左边行对应,就输出左边行,右边表字段为NULL;

hive的left semi join:相当于SQL的in语句,结果没有右表数据。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30289795/viewspace-2139756/,如需转载,请注明出处,否则将追究法律责任。

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

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

相关文章

java permgen_Java 8:从PermGen到元空间

java permgen您可能已经知道,现在可以下载JDK 8 Early Access 。 这使Java开发人员可以尝试Java 8的某些新语言和运行时功能。这些功能之一是完全删除自Oracle自JDK 7发行以来就宣布的Permanent Generation(PermGen)空间。例如,自…

总结

写在前面 课程名称:软件工程原理及方法 课程链接:https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass2 作业要求:https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass2/homework/3393 团队名称:求莫名堂 请…

Pytorch GRU(详解GRU+torch.nn.GRU()实现)

pytorch GRU 目录 pytorch GRU 一、GRU简介1 二、GRU简介2 三、pytorch GRU 3.1 定义GRU ()

同步装饰器来替换线程安全类

您知道什么是线程安全吗? 如果没有,下面是一个简单的示例。 所有类都必须是线程安全的,对吗? 并不是的。 其中一些必须是线程安全的? 又错了。 我认为它们都不必是线程安全的,而它们都必须提供同步的装饰器…

creo减速器建模实例_3.16减速器箱体附件建模

本节内容主要介绍了减速器箱体附件建模,视频时长24分32秒。本节主要通过阵列,拉伸,孔等命令完成创建,操作时注意孔的类型的选择,以及定位基准的选择,学习时要掌握其减速器附件的设计。简要操作步骤&#xf…

回文数

问题 A: 回文数 时间限制: 1 Sec 内存限制: 32 MB提交: 1705 解决: 512[提交][状态][讨论版]题目描述 我们把从左往右和从右往左念起来相同的数字叫做回文数。例如,75457就是一个回文数。当然某个数用某个进制表示不是回文数,但是用别的进制表示可能就…

Pytorch RNN(详解RNN+torch.nn.RNN()实现)

目录 一、RNN简介 二、RNN简介2 三、pytorch RNN 3.1 定义RNN()

git ssh创建分支_【ssh简单版git-server 1】自建git-server

环境:centos和ubuntu系统都可以CentOS release 6.7git version 1.7.1git-server 192.168.50.108git-client 192.168.50.112备注:基于linux系统下做ssh模式的gitserver,需要ssh免密钥,因为git用户是禁止登录的,clone时没…

使用js将后台返回的数据转换成树形结构

将类似如下数据转换成树形的数据: [{ id: 1, name: 1, },{ id: 2, name: 1-1, parentId: 1 },{ id: 3, name: 1-1-1, parentId: 2 },{ id: 4, name: 1-2, parentId: 1 },{ id: 5, name: 1-2-2, parentId: 4 },{ id: 6, name: 1-1-1-1, parentId: 3 },{ id: 7, name:…

HMM及维特比算法

参考 HMM:https://blog.csdn.net/sinat_25346307/article/details/79119366 Viterbi算法:https://blog.csdn.net/shenxiaoming77/article/details/79228378 一、HMM定义 以词性标注为例说明 图1 词性标注任务1、问题:如图1所示&#xff0c…

java 大文件 处理_用Java处理大文件

java 大文件 处理我最近不得不处理一组包含历史逐笔交易的外汇市场数据的文件,并很快意识到使用传统的InputStream都无法将它们读取到内存中,因为每个文件的大小都超过4 GB。 Emacs甚至无法打开它们。 在这种特殊情况下,我可以编写一个简单的…

python项目结构目录结构采用的是_python 项目目录结构设置

python 项目目录结构设置为项目设置目录结构是为了将功能类似的文件放置在同一目录内,增强项目的可读性和可维护性。如果一个python项目功能单一,代码量很小,那就没必要设置的这么复杂。下图是一个示例项目的目录结构:1&#xff0…

HMM和CRF 条件随机场详解

转载于 https://blog.csdn.net/qq_42901761/article/details/104206799 这位大神ffffatgoose总结的很好

使用Spring Cloud Config作为外部化配置

关于连续交付 ,最重要的实践之一是只构建一次二进制文件,并在不同的环境(开发,测试,验收等)中使用该二进制文件 。 这意味着最有可能需要外部化应用程序的配置 。 对于Spring Boot应用程序,将其…

51nod1040 最大公约数之和,欧拉函数或积性函数

1040 最大公约数之和 给出一个n&#xff0c;求1-n这n个数&#xff0c;同n的最大公约数的和。比如&#xff1a;n 6时&#xff0c;1,2,3,4,5,6 同6的最大公约数分别为1,2,3,2,1,6&#xff0c;加在一起 15 看起来很简单对吧&#xff0c;但是n<1e9&#xff0c;所以暴力是不行的…

hide show vue 动画_Vue2.x学习四:过渡动画

Vue 在插入、更新或者移除 DOM 时&#xff0c;提供多种不同方式的应用过渡效果。请注意它的应用场景并不是说我们写了一个动画之后让它一直在动&#xff0c;而是在一个模块显示或隐藏的时候去做一种特效&#xff0c;使得它的过程有过渡性&#xff0c;而不是很突兀的直接消失或显…

Pytorch cifar10离线加载二进制文件

说明直接离线加载cifar10到Pytorch 直接加载6个文件到pytorchdata_batch_1data_batch_2data_batch_3data_batch_4data_batch_5test_batchimport os import cv2 import pickle import numpy as np import matplotlib.pyplot as pltimport torchvision from torch.autograd impor…

spring cloud gateway 深入了解 - Predicate

文章来源 spring cloud gateway 通过谓词&#xff08;Predicate&#xff09;来匹配来自用户的请求 为了方便&#xff0c;使用postman测试不同的谓词的效果 路径谓词&#xff08;Predicate&#xff09;—— 最简单的谓词 配置如下spring:cloud:gateway:routes:# 匹配指定路径的路…

python漏洞检测脚本_URL重定向漏洞,python打造URL重定向漏洞检测脚本

前言&#xff1a;今天学习了重定向漏洞&#xff0c;这个漏洞比较好理解漏洞名&#xff1a;URL重定向漏洞威胁&#xff1a;低漏洞的来源&#xff1a;开发者对head头做好对应的过滤和限制例子&#xff1a;有漏洞的网站&#xff1a;http://a.com/x.php?urlhttp://a.com/login.php…

Pytorch cifar100离线加载二进制文件

说明&#xff1a;直接加载cifar100二进制文件到Pytorch 直接加载文件到pytorchmetatesttrain import os import cv2 import pickle import time import numpy as np import matplotlib.pyplot as pltimport torchvision from torch.autograd import Variable import torch.uti…