Scala df迭代器上缺少参数类型

Scala df迭代器上缺少参数类型,scala,dataframe,apache-spark,foreach,iterator,Scala,Dataframe,Apache Spark,Foreach,Iterator,有人能告诉我为什么这会返回一个缺失的参数类型错误吗?它指向foreach指令内部的迭代器。目的是在Oracle表中插入DF。谢谢各位: def insertTechRejet(df: DataFrame): Boolean = { var committed = false var ik: Long = 99999999 var iterator: Iterator[Row] = null val connexion = SparkCP_mod.pool().ge

有人能告诉我为什么这会返回一个缺失的参数类型错误吗?它指向foreach指令内部的迭代器。目的是在Oracle表中插入DF。谢谢各位:

def insertTechRejet(df: DataFrame): Boolean = {
    var committed = false
    var ik: Long = 99999999
    var iterator: Iterator[Row] = null
    val connexion = SparkCP_mod.pool().getConnection
    var modificationStmt = ""
    modificationStmt = """INSERT INTO DWG_TECH_REJET 
                (ID_TECH_REJET, NOM_TABLE, TYPE_TRAITEMENT, DT_REJET, CD_REJET, CD_SEVERITE_REJET, TOP_A_RECYCLER, TOP_REJET_TRAITE, DT_REJET_TRAITE, NOM_TABLE_ORIG, CAUSE_REJET)
                VALUES(?,?,?,?,?,?,?,?,?,?,?)
                """
      var retour: Boolean = false
      val stmt = connexion.prepareStatement(modificationStmt)
      connexion.setAutoCommit(true)
      df.foreach(iterator =>
        try {

        ik=ik+1
        stmt.setLong(1, ik)
        stmt.setString(2, iterator(1))
        stmt.setString(3, iterator(2))
        stmt.setTimestamp(4, iterator(3))
        stmt.setString(5, iterator(4))
        stmt.setString(6, iterator(5))
        stmt.setInt(7, iterator(6))
        stmt.setInt(8, iterator(7))
        stmt.setTimestamp(9, iterator(8))
        stmt.setString(10, iterator(9))
        stmt.setString(11, iterator(10))


      stmt.executeQuery()

      true
    } catch { ......

我还尝试了
df.foreach(迭代器:Row=>
),但它不起作用

我相信您可以利用Spark SQL的JDBC数据源将数据帧写入Oracle表

详情可从


提交spark作业时,只需使用--jars传递Oracle JDBC jar的正确版本。

我相信您可以使用spark SQL的JDBC数据源将数据帧写入Oracle表

详情可从

提交spark作业时,只需使用--jars传递Oracle JDBC jar的正确版本