微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将Spark数据框中的选定列插入SQL Server表中

如何解决将Spark数据框中的选定列插入SQL Server表中

我有一个sql Server表,该表的架构与我的数据框不同。我想从数据框中选择一些列,然后将选择的值“插入”表中。

基本上类似于以下代码,但位于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”函数或其他方法使用插入语句这不起作用。

谢谢。

解决方法

//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()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。