Picking the Right Operators

When you try to write an application with Spark, you can usually choose from many arrangements of actions and transformations that will produce the same results. However, not all these arrangements will result in the same performance: avoiding common pitfalls and picking the right arrangement can make a world of difference in an application’s performance.
The following rules and insights that I've collected will help you orient yourself when these choices come up.