0

我正在尝试执行 Hive 查询——

  Select a,b,c,d,e,f,cast(g as timestamp) - cast(f as timestamp) as runtime 
from table ORDER BY d,e desc limit 100

它正在下降并出现以下错误

TaskAttempt 1 失败,info=[错误:运行任务时失败:java.lang.RuntimeException:java.lang.RuntimeException:java.lang。RuntimeException: 找不到 exprNodeDesc null 的 ExprNodeEvaluator

我怀疑这是因为计算 b/wg 和 f 的差异(可能是一些 NULL 值),但要求专家回答来解决问题,因为我无权访问数据。提前致谢

我正在使用以下属性。

set hive.execution.engine=tez;
set hive.exec.parallel=true; 
set hive.auto.convert.join=false; 
set hive.compute.query.using.state=true; 
set hive.stats. fetch.column. stats=true;
set hive.stats. fetch.partition.stats=true;
set mapreduce.map.memory.mb=9000;
set mapreduce.map.java.opts=--Xmx7200m;
set mapreduce.reduce.memory.mb=9000; 
set mapreduce. reduce . java. opts=-Xmx7200m;
set hive.cho.enable=true;
set hive. vectorized.execution.enabled=true; 
set hive.vectorized.execution.reduce.enabled=true;

我从 UNIX 服务器上的 hive 提示符运行。实际上基础表是一个包含一些连接的视图..在进一步研究中我发现我们需要将顺序替换为. 不幸的是,在限制之前按需要排序 - >这也导致了同样的问题。有人可以建议任何其他方式来重写查询

4

0 回答 0