sql - 为什么我不能在Hive中使用带有多个insert子句的高级聚合功能?

标签 sql hadoop hive hiveql

我想将多重插入子句与高级聚合功能with cube一起使用,以将多个聚合值插入到Hive中的单个表中。
但是,由于未知原因,未插入列集合的小计。

使用列值的默认值null以及使用coalesce将其替换为字符串时,都会发生此问题。
没有任何可能导致任何列冲突的空值。
其他高级聚合功能(grouping setsrollup)也会发生此问题。
我希望使用这种插入方法,因为这将是执行此操作的最有效方式。

我使用的语法是:

FROM tablename1
INSERT OVERWRITE TABLE tablename2 PARTITION (partcol1=val1) SELECT select_statement1 WHERE where_condition1 GROUP BY col_list WITH CUBE
INSERT OVERWRITE TABLE tablename2 PARTITION (partcol1=val2) SELECT select_statement2 WHERE where_condition2 GROUP BY col_list WITH CUBE ...;

有没有解决此问题的方法,还是无法以这种方式使用多个insert子句?

感谢您的协助。

最佳答案

此问题特定于Map-reduce执行引擎。当执行引擎更改为Tez时,可以正确执行以上语法。

https://issues.apache.org/jira/browse/HIVE-15581

关于sql - 为什么我不能在Hive中使用带有多个insert子句的高级聚合功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41479540/

相关文章:

apache-spark - 查找 Hive/Impala 表的压缩详细信息

SQL:我可以从另一个表中的变量中插入一些字段吗

一张表上的 SQL 合并命令

SQL 语句作为列表框 VB.NET 的数据源

concurrency - 当我想同时运行具有1000多个不同参数的相同算法时,Hadoop能做什么?

jar - Hadoop HADOOP_CLASSPATH 问题

hadoop - 数组联合的聚合函数 [HIVE]

java - 使用或不使用 Eclipse 生成 Spring SP 类

python - 有关在Amazon EMR上使用mrjob运行Mapreduce程序的一些基本疑问

hadoop - hadoop map减少待处理的作业太长时间