ON DUPLICATE KEY UPDATE beim Einfügen von pyspark dataframe in eine externe Datenbanktabelle über JDBC

9

Nun, ich benutze PySpark und ich habe einen Spark-Datenrahmen, mit dem ich die Daten in eine MySQL-Tabelle einfüge.

url = "jdbc:mysql://hostname/myDB?user=xyz&password=pwd"

df.write.jdbc(url=url, table="myTable", mode="append")

Ich möchte einen Spaltenwert (der nicht im Primärschlüssel ist) durch die Summe seines Spaltenwerts und einer bestimmten Zahl aktualisieren.

Ich habe versucht mit verschiedenen Modi (append, überschreiben) DataFrameWriter.jdbc () -Funktion.

Meine Frage ist, wie wir einen Spaltenwert aktualisieren, wie wir es mit ON DUPLICATE KEY UPDATE in mysql machen, während wir die Daten des pyspark Datenrahmens in eine Tabelle einfügen.

    
Richie 16.09.2015, 11:21
quelle

1 Antwort

0

Eine Problemumgehung besteht darin, die Daten in eine Staging-Tabelle einzufügen und sie dann mithilfe einer vom Treiberprogramm ausgeführten SQL-Anweisung in die endgültigen Tabellen zu migrieren. Dann können Sie jede gültige SQL-Syntax verwenden, die für Ihren Datenbankanbieter relevant ist.

    
ThatDataGuy 09.11.2016 12:13
quelle