Apache flink Flink SQL中映射的使用

Apache flink Flink SQL中映射的使用,apache-flink,flink-sql,Apache Flink,Flink Sql,如果您注册一个表,并且其中一个字段是映射(extra,在本例中),则以下语句可以正常工作: SELECT f1, f2 FROM customers WHERE extra['sportPrefs'] = 'Football'; 现在尝试引用地图中不存在的密钥 SELECT f1, f2 FROM customers WHERE extra['moviePrefs'] = 'Action'; 您将获得一个NPE,作业将退出。如果有一种方法可以检查映射中是否存在某个特定的密钥,这将是正常的。不

如果您注册一个表,并且其中一个字段是映射(
extra
,在本例中),则以下语句可以正常工作:

SELECT f1, f2 FROM customers WHERE extra['sportPrefs'] = 'Football';
现在尝试引用地图中不存在的密钥

SELECT f1, f2 FROM customers WHERE extra['moviePrefs'] = 'Action';

您将获得一个NPE,作业将退出。如果有一种方法可以检查映射中是否存在某个特定的密钥,这将是正常的。不幸的是,我没有找到一种方法。检查
是否不为NULL
不起作用。如果没有此功能,Flink SQL中的映射将非常无用。我缺少什么?谢谢!

您所描述的是一个错误描述


它将在下个月发布的下一个FLink版本1.5.0中被修复。

请考虑提交bug报告(包括使用的FLink版本)。谢谢。