由于我是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正在发布查询,无法缓存。