`

hive0.11多表join countI(distinct )bug

 
阅读更多

     hive0.11测试过程中,发现如下bug

 

select count(distinct t2.user_id),t1.app_id,t2.from_id
 from t1 
 join t2 on t1.app_id=t2.app_id
 join t3 on t2.from_id=t3.flag
 group by t1.app_id,t2.from_id

 查询过程报如下错误:FAILED: NullPointerException null

2013-09-16 20:20:59,611 ERROR ql.Driver (SessionState.java:printError(386)) - FAILED: NullPointerException null
java.lang.NullPointerException
    at org.apache.hadoop.hive.ql.optimizer.physical.MetadataOnlyOptimizer$MetadataOnlyTaskDispatcher.dispatch(MetadataOnlyOptimizer.java:308)
    at org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.dispatch(DefaultGraphWalker.java:87)
    at org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.walk(DefaultGraphWalker.java:124)
    at org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.startWalking(DefaultGraphWalker.java:101)

 具体原因正在解决中

中间解决办法形成临时表,子查询,也可以通过设置参数"set hive.map.aggr=false;"临时解决

select count(distinct tmp.user_id), tmp.app_id,tmp.from_id 
from (select t2.user_id,t1.app_id,t2.from_id
	 from t1 
	 join t2 on t1.app_id=t2.app_id
	 join t3 on t2.from_id=t3.flag
	 group by t1.app_id,t2.from_id
 ) tmp

 hive关于此邮件问题描述:http://mail-archives.apache.org/mod_mbox/hive-user/201309.mbox/%3CCA+FBdFQYHm9WvpWYSwaFGs8Vo=crNuSD=zv-Wf7tE8S4=X7AJg@mail.gmail.com%3E

hive官方issues,HIVE-5129:https://issues.apache.org/jira/browse/HIVE-5129

hive官方reviewboard:https://reviews.apache.org/r/13697/diff/#index_header

hive官方历史jira:https://issues.apache.org/jira/issues/?jql=project%20%3D%20HIVE

0
2
分享到:
评论

相关推荐

    hive 0.11中文手册

    自己翻译的 hive 0.11 官方教程。 自己阅读,能找到大部分学习内容

    hive sql + left join 数据缺失

    ### Hive SQL Left Join 数据缺失问题解析 #### 一、问题背景 在大数据处理场景中,Hive 是一种广泛使用的工具,用于对存储在 Hadoop 文件系统中的数据进行数据汇总、查询和分析。随着Hive版本的不断更新,部分用户...

    Hive Summit 2011-join

    Hive Summit 2011-join介绍了Facebook中Hive实现的多种join策略。Hive作为一个数据仓库工具,主要用于处理大规模数据集的分析和查询,而join操作是数据仓库中常见且关键的操作之一。在大数据的背景下,如何高效地...

    Hive表生成工具,Hive表生成工具Hive表生成工具

    Hive表生成工具,Hive表生成工具Hive表生成工具

    13-Hive基本操作1

    Hive 0.14版本开始支持`UPDATE`和`DELETE`操作,但这些操作通常在支持ACID特性的表上进行,且不适用于所有Hive版本。由于Hive设计为批处理工具,频繁的更新和删除操作不是最佳实践。 10. **创建索引**: Hive支持...

    hive 表结构导出

    支持hive 源数据、表结构导出

    快捷删除hive表的工具

    这意味着用户可以一次性删除多个Hive表,而无需逐个执行删除命令,显著提高了工作效率。 2. **自定义删除键**:该工具还支持根据表中的一个或多个字段作为键来批量删除表。这种灵活性使得用户可以根据业务需求定制...

    Hive查询sql left join exists

    在Hive SQL中,JOIN操作是用来合并来自两个或多个表的数据。本文主要关注LEFT JOIN和EXISTS子句的使用,这两个都是数据查询中常见的技术,特别是在大数据处理领域,如Hadoop环境下的Hive。 首先,LEFT JOIN(左外...

    大数据工具之HIVE外键及多表关联的介绍.zip

    大数据工具之HIVE外键及多表关联的介绍.zip

    Hive-Summit-2011-join.zip_hive

    8. **Hive的Join挑战**:尽管有各种优化策略,但处理大规模数据集的Join仍然是Hive面临的主要挑战之一,特别是涉及多个大表的复杂Join操作。 9. **Best Practices**:在实际应用中,应考虑数据分布、Join类型的选择...

    修改hive表分区名称

    需要注意的是,如果Hive表的分区数据较多,该操作可能会耗时较长,请耐心等待。 #### 三、验证修改结果 完成以上步骤后,还需要对修改结果进行验证: 1. **查询新分区的数据**:使用`SELECT * FROM test WHERE ...

    hive生成日历表.sql

    hive生成日历表.sql

    hive用户手册_0.11_cn.chm

    hive用户手册_0.11_cn.chm

    hive外部表创建

    ### Hive外部表创建详解 #### 一、引言 在大数据处理领域,Hive作为一款广泛使用的数据仓库工具,能够高效地对存储在Hadoop文件系统中的数据进行查询与管理。其中,外部表的创建是Hive使用过程中的一个重要概念。...

    Hive表分区

    Hive表分区,里面有比较详细的Hive表分区方法,希望能够有所帮助。

    批量导出hive表结构

    通过shell脚本,批量把一个库下面的表结构全部导出,在开发环境执行过。

    Hive的表数据,一共1165w条数据

    hive的表数据,可以到我的博客,有建表语句,我的链接是 https://blog.csdn.net/qq_43662627/article/details/121033176

    Hive内部表合并小文件Java程序

    内部表的数据由Hive完全管理,删除内部表会同时删除其对应的数据。而外部表仅仅是一个指向实际数据的引用,删除外部表不会影响数据。在这个场景下,我们关注的是内部表,因为小文件问题主要影响数据读取速度。 小...

    spark操作hive表源码

    Spark操作Hive表的底层实现涉及到多个组件的协同工作。SparkSQL会通过HiveMetastore获取表的元数据,包括表的分区信息、字段类型等。然后,它将DataFrame转换为执行计划,这个计划会被优化器进一步优化,生成执行...

    hive2.1.1中orc格式读取报数组越界错误解决方法

    然而,有时候在使用ORC格式读取数据时,可能会遇到“数组越界”错误,这通常是由于软件bug或者不兼容性导致的。 “数组越界”错误是Java编程语言中常见的异常类型,表明程序试图访问数组的一个不存在的元素,即下标...

Global site tag (gtag.js) - Google Analytics