Jdbc 将spark dataframe中选定的列插入SQL Server表

Jdbc 将spark dataframe中选定的列插入SQL Server表,jdbc,pyspark,apache-spark-sql,aws-glue-spark,Jdbc,Pyspark,Apache Spark Sql,Aws Glue Spark,我有一个SQL Server表,它的架构与我的dataframe不同。我想从我的数据框中选择一些列,并在表中“插入”我选择的值 基本上类似于下面的代码,但在pyspark中: INSERT INTO Cust_Diff_Schema_tbl (acct_num, name) SELECT account_no, name FROM customers WHERE customer_id > 5000; 我可以使用spark.read使用jdbc读取数据。如下图所示: df_s3 = sp

我有一个SQL Server表,它的架构与我的dataframe不同。我想从我的数据框中选择一些列,并在表中“插入”我选择的值

基本上类似于下面的代码,但在pyspark中:

INSERT INTO Cust_Diff_Schema_tbl
(acct_num, name)
SELECT account_no, name
FROM customers
WHERE customer_id > 5000;
我可以使用spark.read使用jdbc读取数据。如下图所示:

df_s3 = spark.read.format("jdbc")\
                .option("driver", db_driver_name)\
                .option("url", db_url+ ":1433;databaseName="+stage_db)\
                .option("dbtable", tbl_name)\
                .option("query", """(select * from customers)""")\
                .option("user", db_username)\
                .option("password", db_password)\
                .load()
    
    df_s3.printSchema()
    df_s3.show(20)
要使用所选的值将数据写入/追加到表中,我相信我仍然可以使用“df_s3.write”,但我需要一个示例,说明如何使用.option函数使用insert语句或其他方法(如果不起作用)


提前感谢。

我的insert into语句和我的数据帧中传入的值在哪里?首先,您需要创建df,并且您想要插入的任何列都只保留df中的值,现在,如果您说moe override,然后截断delete并为您重新创建表,那么保存和模式append将添加到表的末尾,inshort no instrt into sql NEEDD您是否有可以共享的示例?您确实了解我的表架构不同于我的数据框,这就是为什么我认为我必须使用insert into来选择列。使用现有df创建新的数据框并保留。只有您想要插入的列,才会与您共享示例
//create dataframe

val df = //fetch from  db,read file or other options

df.write.format("jdbc")
      .option("numPartitions", 20)
      .option("batchsize", 10000)
      .option("truncate", "true")
      .option("url", "jdbcURL")
      .option("driver", "Driver name")
      .option("dbtable", "tablename")
      .mode("append")
      .save()