9

Bene, sto usando PySpark e ho un dataframe Spark con il quale inserisco i dati in una tabella mysql.ON DUPLICATE KEY UPDATE durante l'inserimento dal dataframe pyspark ad una tabella di database esterna tramite JDBC

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

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

voglio aggiornare un valore di colonna (che non è in chiave primaria) per la somma del suo valore colonna e un numero specifico.

Ho provato con diverse modalità (accoda, sovrascrivi) la funzione DataFrameWriter.jdbc().

La mia domanda è come si aggiorna il valore di una colonna come in si fa con ON DUPLICATE KEY UPDATE in mysql, mentre si inseriscono i dati del dataframe pyspark in una tabella.

+1

Hai trovato una soluzione? – blumonkey

risposta

0

Una soluzione alternativa consiste nell'inserire i dati in una tabella di staging e quindi migrare nelle tabelle finali utilizzando un'istruzione SQL eseguita dal programma del driver. Quindi è possibile utilizzare qualsiasi sintassi SQL valida relativa al proprio provider di database.