Sql server 在写入dataframe-pyspark之前从表中删除记录
我试图在从dataframe向表中写入数据之前删除表中的记录。这对我不起作用。。。我做错了什么Sql server 在写入dataframe-pyspark之前从表中删除记录,sql-server,pyspark,apache-spark-sql,pyspark-dataframes,aws-glue-spark,Sql Server,Pyspark,Apache Spark Sql,Pyspark Dataframes,Aws Glue Spark,我试图在从dataframe向表中写入数据之前删除表中的记录。这对我不起作用。。。我做错了什么 Goal: "delete from xx_files_tbl" before writing new dataframe to table. query = "(delete from xx_files_tbl)" spark.write.format("jdbc")\ .option("url&quo
Goal: "delete from xx_files_tbl" before writing new dataframe to table.
query = "(delete from xx_files_tbl)"
spark.write.format("jdbc")\
.option("url", "jdbc:sqlserver://"+server+":1433;databaseName="+db_name)\
.option("driver", driver_name)\
.option("dbtable", query)\
.option("user", user)\
.option("password", password)\
.option("truncate", "true")\
.save()
谢谢。您可以使用.mode(“overwrite”)和.option(“truncate”,true)直接写入数据帧,而不是在写入数据帧之前删除sql server表中的数据
您不能删除数据,因为数据帧是不可变的。你可以做过滤操作,创建新的数据框,然后写到你的位置。我想这样做会对你有所帮助
newdf=spark.sql(“select*from xx_files_tbl,其中valuespark documentations表示,
dbtable
用于传递应该从中读取或写入的表。from
子句只能在使用JDBC连接器读取数据时使用。(资源:)
我的建议是要么使用
覆盖
写入模式,要么为数据删除打开一个单独的连接。数据删除和连接到MySQL服务器不需要Spark。使用Python MySQL
连接器或打开一个单独的jdbc连接就足够了。有人能帮忙吗..被困在这个f上了吗或者几个小时。他不想从df中删除数据,而是从目标表中删除数据。嗨,Alex-谢谢你的反馈。因为这是一项粘合工作,所以在使用python库时非常挑剔。有没有办法做到这一点,因为我使用的是MS SQL Server…你有没有关于如何为SQL Server打开单独的jdbc连接的示例