我将MongoDB连接到Spark,我想使用查询加载数据。
df = sqlContext.read.format("com.mongodb.spark.sql").options(collection='test', query = {'name' :'jack'}).load()
df.show()
但是它将整个系列归还给我。如何在Spark中重现与此查询db.test.find({'name':'jack'})相同的内容?
答案 0 :(得分:2)
您可以使用filter
或where
来指定条件:
from pyspark.sql.functions import col
df.filter(col("name") == "jack")
它将转换为aggregation pipeline:
当使用带有DataFrames或Spark SQL的过滤器时,底层的Mongo Connector代码会构建一个聚合管道,以便在将其发送到Spark之前过滤MongoDB中的数据。