hive中的mapjoin非等值链接

问题描述

我想问下,我现在有两张表,一张大,一张非常小,所以打算用mapjoin,而且大表中的a字段与小表的b字段是包含和被包含的关系,所以大表和小表是不等值的链接,所以用mapjoin比较方便,但是我在查询数据的时候,却查不出想要的数据。。举例:a字段的数据为:我,我吃了,我睡了。。b字段的数据为:吃hiveQL:select/*+mapjoin(test1)*/test1.b,test2.afromtest1jointest2wheretest1.alike'%'+test2.b+'%';上面这种得不出我想要的结果,所以我又试了其它几中函数:wherefind_in_set(test1.b,test2.a)>0wherelocate(test2.a,test1.b,0)>0whereinstr(test2.a,test1.b)>0上面这几种方式都查不出我要的结果(a里面的“我吃了”),按照逻辑来说,这些方式都应该是可以的。所以大家知道为什么吗?有什么建议吗?

解决方案

解决方案二:
额,好久了,我自己回答一下吧,也许不太对,但是确实是我测出来的。。。当用mapjoin时,小表中数据的第一行不会被当作过滤条件。。。。不知道是不是Hive的bug,只能只是针对的我们的表出现了这种情况吧我的解决方案是。。小表的第一行,随便加上一行数据。。。OK。。解决了。。

时间: 2024-11-05 18:50:44

hive中的mapjoin非等值链接的相关文章

非自然链接如何在谷歌企鹅算法中生存

在4月24日谷歌对外公布企鹅算法更新的同时,就已经对很多网站中的自然链接配置文件进行了检索,对于那些非自然链接的网站做了处罚,比如网站流量下降,排名减低等等,如何监视你的网站链接权益的损失,我们可以从overoptimisation案件中得到启发. 一.收购过度的链接 在短时间之内获取大量的链接,对于网站而言从来都不是一个很好的方法,站长应该控制链接的急剧增加,尤其是在谷歌算法推出之后,我们经常可以听到:"这两个网站已经收到网站管理员工具中的消息.这两个网站通过使用第三方工具"非自然链

jvm中堆和非堆的划分,请不要从别处粘帖内容或者发链接给我,看清题目再回答

问题描述 jvm中堆和非堆的划分,请不要从别处粘帖内容或者发链接给我,看清题目再回答 哪位大神能给我讲解一个问题,我们使用参数-Xms -Xmx设置堆内存的最小值和最大值,-XX:PermSize -XX:MaxPermSize设置非堆内存的最小值和最大值,这里的非堆内存包括Permanent Space(永久存储区).但是为什么又说jvm中的堆内存分为三部分:Permanent Space 永久存储区.Young Generation Space 新生区.Tenure generation s

数据蒋堂 | 非等值分组

我们在上一期研究了分组运算的实质,即将一个集合按某种规则拆分成若干子集.不过,上期的关注重点在于还原分组运算的步骤,而没有讨论拆分规则,例子中都是用某些字段(或表达式)来定义拆分规则,也就是SQL中使用的方法. 我们把这种拆分方式称为等值分组. 等值分组在数学上的描述,相当于在一个集合上定义了一个等价关系:分组字段(表达式)相等的成员(记录)就认为等价. 等价关系是指满足如下条件的关系: 1)交换性,若a=b则b=a 2)传递性,若a=b,b=c则a=c 3)排他性,对任何a,b,a=b和a!=

在 Apache Hive 中轻松生存的12个技巧

在 Apache Hive 中轻松生存的12个技巧 Hive 可以让你在 Hadoop 上使用 SQL,但是在分布式系统上优化 SQL 则有所不同.这里是让你可以轻松驾驭 Hive 的12个技巧. Hive 并不是关系型数据库(RDBMS),但是它大多数时候都表现得像是一个关系型数据库一样,它有表.可以运行 SQL.也支持 JDBC 和 ODBC. 这种表现既有好的一面,也有不好的一面:Hive 并不像关系型数据库那样执行 SQL 查询.我在 Hive 上花费了大量时间,光是我自己在工作中就为了

Hive中如何确定map数

Hive 是基于 Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的 sql 查询功能,可以将 sq l语句转换为 MapReduce 任务进行运行.当运行一个 hql 语句的时候,map 数是如何计算出来的呢?有哪些方法可以调整 map 数呢? 本文测试集群版本:cdh-4.3.0 . hive 默认的 input format 在 cdh-4.3.0 的 hive 中查看 hive.input.format 值(为什么是hive.input.format?

Hive中如何查看数据来源文件和具体位置

通常用户在HIVE中用SELECT语句出来结果,无法确定结果是来自哪个文件或者具体位置信息,HIVE中考虑到了这点,在Virtual Column虚列中可以指定三个静态列: 1.  INPUT__FILE__NAME        map任务读入File的全路径 2.  BLOCK__OFFSET__INSIDE__FILE       如果是RCFile或者是SequenceFile块压缩格式文件则显示Block file Offset,也就是当前快在文件的第一个字偏移量,如果是TextFil

hive中执行sql语句出现的问题

The expression after ELSE should have the same type as those after THEN: "bigint" is expected but "i hive中执行sql语句: select pc.category_id, sum(case when t.so_month between 3 and 5 then t.order_item_num else 0 end) as spring, sum(case when t.

Python中pip安装非PyPI官网第三方库的方法

  这篇文章主要介绍了Python中pip安装非PyPI官网第三方库的方法,pip最新的版本(1.5以上的版本), 出于安全的考虑,pip不允许安装非PyPI的URL,本文就给出两种解决方法,需要的朋友可以参考下 在python中安装非自带python模块,有三种方式: 1.easy_install 2.pip 3.下载压缩包(.zip, .tar, .tar.gz)后解压, 进入解压缩的目录后执行python setup.py install命令 本文主要针对pip安装时可能会碰到的一种情况,

Django中实现点击图片链接强制直接下载的方法

  本文实例讲述了Django中实现点击图片链接强制直接下载的方法.分享给大家供大家参考.具体分析如下: 当用户点击图片连接时,默认为在浏览器中直接开打图片,这段代码可以让图片链接变成下载 这段代码也非常适合下载大文件,基本不会消耗内存,每次只读取一部分数据到内存,然后提供下载 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 def Download(request): def readFile(fn, buf_size=262144): f = open