Нет никакой разницы в производительности. Оба метода используют точно такой же механизм выполнения и внутренние структуры данных. В конце дня все сводится к личным предпочтениям.
DataFrame
гораздо проще создавать программно и обеспечивать минимальную безопасность. HiveContext
они могут также использоваться для раскрытия некоторых функций, которые могут быть недоступны другими способами (например, UDF без обтекателей Spark).