3
也許當您在標題中看到「語義錯誤」時,您認爲它是語法錯誤? 當然不是,我會告訴你發生了什麼事。Hive中的奇怪異常:語義分析中的錯誤
hive> use android;
OK
Time taken: 0.223 seconds
hive> desc tb_user_basics;
OK
col_datetime string
col_is_day_new string
col_is_hour_new string
col_ch string
...
p_date string
p_hourmin string
Time taken: 0.189 seconds
hive> select count(distinct col_udid) from android.tb_user_basics where p_date>='20121001' and p_date<='20121231';
FAILED: Error in semantic analysis: org.apache.thrift.transport.TTransportException: java.net.SocketTimeoutException: Read timed out
hive>
>
> select count(distinct col_udid) from android.tb_user_basics where p_date>='20121001' and p_date<='20121231';
FAILED: Error in semantic analysis: Unable to fetch table tb_user_basics
我很肯定表中確實存在數據庫android。在第一個語句失敗後,似乎缺少表(即使我在表名中添加了數據庫前綴)
我想知道是否因爲數據量很大,也許你已經注意到了時間範圍是[20121001,20121231]。 我很多次運行該命令,總是引發這個錯誤。但是如果我將這個關聯改爲「p_date ='20121001'」,那麼這個語句可以正常運行。 (因爲體積較小?)
我期待你的答案,謝謝。
沒關係,我會檢查該參數。 但實際上,如果我指定的時間範圍較小,如[20121001,20121005],則該聲明有效。 – HaiWang 2013-03-03 03:04:34
你累了嗎? – www 2013-03-03 08:05:40
我已經檢查過該參數,但它已經是非嚴格的了。我們沒有改變它,所以它仍然是默認值。 – HaiWang 2013-03-04 06:29:19