[FIXED] Spark: Erstellen Sie einen einspaltigen Datenrahmen mit komplexem Typ

Ausgabe

Angenommen, ich habe eine Fallklasse wie folgt:

final case class Person(name: String, age: Int)

Ich möchte einen einspaltigen Datenrahmen erstellen, der einen komplexen StructType von Person. Ich möchte, dass Spark das Schema ableitet.

val data = Seq(Person("Tom", 30), Person("Anna", 35))

val df = spark.createDataFrame(data)

Ich möchte, dass Spark schlussfolgert, dass der Datenrahmen eine einzelne Spalte mit dem komplexen Typ Person. Derzeit ist es Personin mehrere Spalten aufgeteilt

Lösung

Sie können die Daten der gewünschten Struktur zuordnen.

Eine Hilfsklasse:

case class PersonWrapper(person: Person)

Jetzt gibt es zwei Möglichkeiten:

  1. Zuordnen der Scala-Sequenz vor dem Erstellen des Spark-Datenrahmens:
val df = spark.createDataFrame(data.map( PersonWrapper(_)))

oder

  1. Zuordnen des Spark-Datenrahmens/Datensatzes:
val df = spark.createDataset(data).map(PersonWrapper(_))


Beantwortet von –
werner


Antwort geprüft von –
Timothy Miller (FixError Admin)

0 Shares:
Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like

[FIXED] Scala 3 Manifest-Ersatz

Ausgabe Meine Aufgabe ist es, Typinformationen in Java-ähnlicher Notation auszugeben (unter Verwendung von <, >für die Notation von…