Running GeoAnalytics Engine 1.7 on Spark 4.0 with 500M+ records. What Spark tuning configs (executors, partitions, shuffle service) give the most stable performance for large spatial joins and aggregations?