我正在尝试找到一种解决方法来检查 Hive 2.1 中的 NULL 映射。当我检查地图内的键时,我得到了正确的结果。这是我要评估的内容以及结果:
hive> select request_params, request_params is null, request_params['id'], request_params['id'] is null from dcs_log_pday_s3 where pday='2016-11-24' and hour='00' and pid=1124 limit 10;
OK
{"id":"EAED7055-7003-4A11-8494-CF1079EF24","et%3Aivs%7Cdata%3Ad":"1966"} false EAED7055-7003-4A11-8494-CF1079EF24 false
NULL false NULL true
NULL false NULL true
NULL false NULL true
NULL false NULL true
NULL false NULL true
NULL false NULL true
NULL false NULL true
NULL false NULL true
{"id":"97EBD924-C45C-4A93-AAEF-57595005","et%3Aibs%7Cdata%3Ad":"1966"} false 97EBD924-C45C-4A93-AAEF-57595005 false
Time taken: 0.095 seconds, Fetched: 10 row(s)
但是,我在旧版本的 Hive 上没有同样的问题(例如在 Hive 1.1 上):
hive> select request_params, request_params is null from dcs_log_pday_s3 where
pday='2016-11-24' and hour='00' and pid=1124 limit 10;
Query ID = keystone_20161126000606_0a8caadd-ec27-4a92-96a9-5e7b0b95f318
...
Total MapReduce CPU Time Spent: 1 minutes 2 seconds 750 msec
OK
{"id":"3AFCDA87-BAE5-4EEA-9B47-61BA2B4D0BC8","et%3Aibs%7Cdata%3Ad":"1966"} false
NULL true
NULL true
NULL true
NULL true
NULL true
NULL true
NULL true
{"id":"8D0F1D5F-57E7-4127-94C0-C1FD4F98D6E8","et%3Aibs%7Cdata%3Ad":"1966"} false
我可以添加我在 AWS EMR 5.2 上运行的第一个查询,第二个查询在本地 CDH5.4 集群上运行。
有人可以给我一些见解吗?