Impala查询无法使用NullPointerException检索结果

时间:2016-06-22 13:00:02

标签: hive impala

我有以下查询,我在hive / impala上运行:

select count(p.id) as tweet_count, p.author as author,p.profile_image_url as profile_image_url,p.screen_name as screen_name,
concat_ws('/',min(p.postday),min(p.postmonth),min(p.postyear) ) as creation_date,p.message message,af.followerid as follower 
from post p 
inner join author_follower af on af.id like if(p.author= null, '', concat(p.author,'%'))
where p.hashtaglist like 'hashtagtobeused' 
group by author,profile_image_url,screen_name,message,follower
ORDER BY cast(min(postyear) as int),cast(min(postmonth) as int),cast(min(postday) as int),cast(min(posthour) as int) ASC;

但由于某种原因,我得到以下错误结果

您的查询有以下错误:

Bad status for request 3304: TGetOperationStatusResp(status=TStatus(errorCode=None, errorMessage=None, sqlState=None, infoMessages=None, statusCode=0), operationState=5, errorMessage=None, sqlState=None, errorCode=None)

我检查了查询,但是我发现它没有问题,有人可以帮助并指导问题所在吗?为什么我有这个错误而不是结果集

1 个答案:

答案 0 :(得分:1)

考虑仔细重新格式化查询,因为在某些情况下,当SQL解析本身因空格等简单问题而失败时,Impala会与SEGV崩溃。如果您正在运行Cloudera,那么您将在运行查询的节点上的<?php $contents = file_get_contents("http://supplierwebsite.com"); if (strstr($contents, "Not in stock")) { // it's not in stock } ?> 中找到日志。

我们通过小心SQL格式化来解决这些问题(这也是一种很好的做法,因为它使查询错误更容易被发现),例如。

/run/cloudera-scm-agent/process

(顺便说一句,我使用dbVisualizer来验证和重新格式化查询语法 - 需要考虑的好工具)