タイトルに「セマンティックのエラー」と表示されている場合、構文エラーと見なされますか? もちろんそうではありません。何が起こったのかをお見せします。
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に存在すると確信しています。最初のステートメントが失敗した後、テーブルが欠落しているように見えます.(テーブル名に db プレフィックスを追加しても)
データ量が多いからなのか気になりますが、時間帯が [20121001, 20121231] になっていることにお気付きでしょうか。何度もコマンドを実行すると、常にこのエラーが発生します。しかし、条件を「p_date='20121001'」に変更すると、ステートメントは正常に実行できます。(ボリュームが小さいから?)
私はあなたの答えを待っています、ありがとう。