Leistungsauswirkungen der RDD-API im Vergleich zu UDFs, die mit der DataFrame-API gemischt sind

(Scala-spezifische Frage.)

n @While Spark-Dokumenten wird die Verwendung der DataFrame-API empfohlen. Wenn die DataFrame-API nicht ausreicht, können Sie normalerweise auf die RDD-API zurückgreifen oder UDFs verwenden. Gibt es inhärente Leistungsunterschiede zwischen diesen beiden Alternativen?

RDD und UDF sind insofern ähnlich, als keiner von ihnen von Catalyst- und Tungsten-Optimierungen profitieren kann. Gibt es einen anderen Overhead und wenn ja, unterscheidet sich dieser zwischen den beiden Ansätzen?

Um ein konkretes Beispiel zu nennen, nehmen wir an, ich habe einen DataFrame, der eine Spalte mit Textdaten mit benutzerdefinierter Formatierung enthält (die nicht für den regulären Ausdruck geeignet ist). Ich muss diese Spalte analysieren und eine neue Vektorspalte hinzufügen, die die resultierenden Token enthält.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage