I am using structured streaming to evaluate multiple rules on same running stream. I have two options to do that. One is to use forEach and evaluate all the rules on the row.. The other option is to express rules in spark sql dsl and run multiple queries. I was wondering if option 1 will result in better performance even though I can get catalyst optimization in option 2.