spark计算出来后,得到dataframe,需要删除dataframe中的ids。
在SQL语句中,我们可以通过【delete from table where id in ('id1','id2')】,所以只需要把算到的df转换成string字符串的格式,具体实现如下:
val df = Seq(
("111"),("222"),("333")
).toDF("ID")
val delObj = df.select("ID")
.as[String]
.map(elem=> s"'$elem'")
.collect()
.mkString(",")
val delSql = s"delete from $tableName where $delObj"
Class.forName(//PG配置)
val conn = DriverManager.getConnection(url, properties)
val delPS = conn.prepareStatement(delSql)
var cnt = delPS.executeUpdate()
delPS.close()
conn.close()