В идеале катализатор Spark должен оптимизировать оба вызова одного и того же плана выполнения, а производительность должна быть одинаковой. Как позвонить - это всего лишь вопрос вашего стиля. На самом деле существует разница, соответствующая отчету Hortonworks ( https://community.hortonworks.com/articles/42027/rdd-vs-dataframe-vs-sparksql.html ), где SQL превосходит Dataframes для случая, когда вам нужны записи GROUPed с их суммарными COUNTS, которые СООТВЕТСТВУЮТ по названию записи.