Ich versuche, ein neues Dataset mit einem alten Dataset zusammenzuführen, ich habe einen Seq [String] von Primärschlüsseln für jeden Tabellentyp und einen alten Dataframe und einen neuen Dataframe mit demselben Schema.Wie kann ich auswählen, welche doppelten Zeilen gelöscht werden sollen?
Wenn die Primärschlüsselspalte Werte übereinstimmen, möchte ich die Zeile in der alten Datenrahmen mit der Zeile in der neuen Datenrahmen ersetzen, wenn sie nicht übereinstimmen, ich will in die Zeile hinzuzufügen.
I haben dies bisher:
val finalFrame: DataFrame = oldDF.withColumn("old/new",lit("1"))
.union(newDF.withColumn("old/new",lit("2")))
.dropDuplicates(primaryKeySet)
ich eine wörtliche Spalte 1 der hinzufügen und 2 der Spur zu halten, von denen Reihen sind denen, union sie zusammen, und legen sie die Duplikate auf der Grundlage der Seq [Zeichenfolge] der Primärschlüsselspaltennamen . Das Problem mit dieser Lösung ist, dass ich nicht angeben kann, welche Duplikate aus der Tabelle gelöscht werden, wenn ich angeben könnte, dass Duplikate mit "1" gelöscht werden, was optimal wäre, aber ich bin offen für alternative Lösungen.