Spark在数据库上运行过滤器,而不是在Spark数据帧上运行



由于我是Spark的新手,可能我错过了一些东西。

我正在使用PySpark从mongo中获取数据帧,并进行一些过滤。当我在sayaround 5000条记录上运行它时,一切都很好,但当我用sayarough 1,70000条记录运行同样的东西时,它不是在数据帧上过滤记录,而是在mongodb上运行过滤,这让它太慢了。

我是不是遗漏了什么,可能是一些配置。

dataframe = df1.where(col("") != '')
.filter((col("")
.isin(df2["id"))
& (col("create_date") >= lit(start_date))
& (col("create_date") <= lit(end_date)))

我有两个数据帧,其中第二个数据帧迭代13k次,以获得每个记录的id,并将其与第一个数据帧(df1(匹配,这样我就可以看到mongdb日志中触发的查询。。。

请帮忙。

已解决。。。

我没有在MongoDB集合中创建索引,因为spark正在发布查询,无法缓存。

最新更新