When we construct a query in spark or pyspark, the engine automatically implements the push down predicate method. What exactly is it, and what is the benefit? connections game