如何使用Spark连接器为MongoDB匹配null?

时间:2017-07-31 12:21:16

标签: mongodb apache-spark pyspark aggregation-framework

我正在尝试使用带有pyspark mongodb连接器的聚合函数来查询MongoDB集合,但我无法执行匹配到null。

我已经尝试了这个:

{'$match' : {'deleted_at': null}}
{'$match' : {'deleted_at': 'null'}}
{'$match' : {'deleted_at': None}}
{'$match' : {'deleted_at': False}}
{'$match' : {'deleted_at': 0}}

但似乎没有任何效果。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

您可以利用Spark中的过滤器下推(默认情况下)

  

"与DataFrames或Python API一起使用时,底层的Mongo Connector代码构建一个聚合管道,以便在将其发送到Spark 之前过滤MongoDB中的数据。

Spark-Mongo connector doc

Python代码

filter

答案 1 :(得分:0)

我找到了一个可能的解决方案,可以避免更改所有查询。解决方案是匹配这样的类型:

{'$match' : 'deleted_at': { '$type': 10 }}

因为10对应于null