Trois API pour le même moteur, mais un seul optimiseur les comprend. Pourquoi le DataFrame gagne presque toujours, et les trois cas où le RDD reste indispensable.
Une UDF est une boîte noire pour Catalyst : plus de codegen, plus de pushdown. Ce que vous perdez, et comment la remplacer par des fonctions natives.