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.
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.
Tags und Links apache-spark pyspark spark-dataframe apache-spark-sql pyspark-sql