Performance Modeling for Spark Applications