当我在AWS中运行以下代码时,
SELECT year, MAX(temperature)
FROM records
WHERE temperature != 9999
AND (quality = 0 OR quality = 1 OR quality = 4 OR quality = 5 OR quality = 9)
GROUP BY year;
我得到了#34;好的"来自AWS EMR,如第一张图片所示......
...但我看不到预期的结果/输出
1949 111
1950 22
就像第二张图片中的那个:
我尝试过的代码:
hive>
> SELECT year, MAX(temperature)
> FROM records
> WHERE temperature != 9999
> AND (quality = 0 OR quality = 1 OR quality = 4 OR quality = 5 OR quality = 9)
> GROUP BY year;
Query ID = hadoop_20180302235859_3409fe28-465e-4857-9c10-243bcaafe819
Total jobs = 1
Launching Job 1 out of 1
Status: Running (Executing on YARN cluster with App id application_1520032089791_0005)
----------------------------------------------------------------------------------------------
VERTICES MODE STATUS TOTAL COMPLETED RUNNING PENDING FAILED KILLED
----------------------------------------------------------------------------------------------
Map 1 .......... container SUCCEEDED 1 1 0 0 0 0
Reducer 2 ...... container SUCCEEDED 1 1 0 0 0 0
----------------------------------------------------------------------------------------------
VERTICES: 02/02 [==========================>>] 100% ELAPSED TIME: 5.03 s
----------------------------------------------------------------------------------------------
OK
Time taken: 6.488 seconds
答案 0 :(得分:0)
它告诉您没有数据行与您的WHERE语句匹配。
您应该调试查询以找出您没有获得预期结果的原因。
例如,表中的数据可能不同。尝试使用以下方式查看数据:
select * from records limit 10
然后进一步深入探讨:
select * from records where temperature != 9999 limit 10
检查quality
的值是否与WHERE语句匹配。
不要问为什么没有工作,而是要证明数据存在并显示应该工作。