Explain the difference between Spark dataframe actions and transformations, and how they affect execution.