2016-02-04 72 views
1

下面的查询是给我的错误:错误试图通过使用在显通滞后功能时[蜂房] [SAS过的Hadoop]

执行错误:在处理声明:失败:执行错误,返回代码2从 org.apache.hadoop.hive.ql.exec.mr.MapRedTask

有谁知道为什么或者如何解决这个问题?

proc sql; 
connect to hadoop(server='xxx' port=10000 schema=xxx SUBPROTOCOL=hive2 sql_functions=all); 
execute(
create table a as 
select 
    *, 
    lag(claim_flg,1) over (order by ptnt_id,month) as lag1 
from b 
) by hadoop; 
disconnect from hadoop; 
quit; 

回答

0

这似乎是在HIVE数据库的限制问题:

每桌 127个表达式蜂巢限制由于在蜂巢数据库的限制,表最多可包含127个表达式。当读出第128个表达,该指令将失败,并且SAS日志接收类似于下面的消息:

ERROR:java.sql.SQLException中:错误在处理语句:FAILED: 执行错误,则返回 代码2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask

错误:无法执行Hadoop查询。 错误:执行错误。 SQL_IP_TRACE:没有任何SQL直接传递给DBMS。 任何时候将表格作为指令的一部分读取时,Hive限制均适用。对于SAS Data Loader,错误可能出现在汇总,配置文件,查看结果和查看样本数据时。

来源:http://support.sas.com/documentation/cdl/en/dmddug/67908/HTML/default/viewer.htm#p1fl149uastoudn1v7r2u5ff8aft.htm