使用scala在FOR Loop中的MSSQL中创建表

问题描述 投票:-3回答:1

我有一个具有4个唯一值的数据框。我需要创建一个FOR循环,该循环将在MSSQL DB中创建相应的表。例如,iterable_loc数据框具有值(北,东,西,南),我想为每个区域创建一个表,并使用各自的名称。

如果不存在则创建表iterable_loc(nvarchar区域(10),int计数)

你们能帮忙吗?

问候,

scala apache-spark
1个回答
0
投票

检查下面的代码

使用spark您还可以创建所需的表格,如下所示。在此,我以postgress为例。您可以根据需要更改以下代码。

scala> df.show(false)
+-----+
|zone |
+-----+
|North|
|East |
|West |
|South|
+-----+

val options = Map(
    "url" -> "jdbc:postgresql://localhost:5432/postgres",
    "driver" -> "org.postgresql.Driver",
    "dbtable" -> "postgres",
    "user" -> "postgres",
    "password" -> "postgres"
)

df
.map(_.getAs[String](0))
.collect
.foldLeft(df)((ddf,zone) =>{ 
    ddf.filter($"zone" === zone).withColumnRenamed("zone",zone).write.format("jdbc").saveAsTable(zone);
     ddf
})

© www.soinside.com 2019 - 2024. All rights reserved.