Lors de l'écriture de données sur RDS à l'aide de DynamicFrame dans une tâche Glue Comme il est écrit par append, les données seront dupliquées si le même travail est exécuté.
La conversion d'un DynamicFrame en DataFrame vous permet d'écrire en mode écrasement.
Ajoutez ce qui suit au code du travail généré automatiquement. On suppose que la définition de connexion JDBC est préparée.
#datasink4 = glueContext.write_dynamic_frame.from_jdbc_conf(frame = dropnullfields3, catalog_connection = "MyConnection", connection_options = {"dbtable": "my_table", "database": "my_database"}, transformation_ctx = "datasink4")
#Obtenir des informations JDBC à partir de la définition de connexion
jdbc_conf = glueContext.extract_jdbc_conf(connection_name='MyConnection')
#Convertir une trame dynamique en trame de données
df = dropnullfields3.toDF()
#Ecrire DataFrame dans la table (mode écrasement)
df.write \
.format("jdbc") \
.option("url", jdbc_conf['url']) \
.option("dbtable", "my_database.my_table") \
.option("user", jdbc_conf['user']) \
.option("password", jdbc_conf['password']) \
.mode("overwrite") \
.save()
job.commit()
Dans l'exemple, j'écrivais des données S3 sur Aurora Serverless MySQL, mais j'ai pu les écraser.
Recommended Posts