Hi I would like to store/save DataFrame in a database table which is created
already and want to insert into always without creating table every time.
Unfortunately Spark API forces me to create table every time I have seen
Spark source code the following calls uses same method beneath if you
carefully see code it always expects new table to be created any idea how do
I use existing table to save dataframe

dataframe.write().jdbc(); OR dataframe.insertInto()

def jdbc(url: String, table: String, connectionProperties: Properties): Unit
= {
    val props = new Properties()
    extraOptions.foreach { case (key, value) =>
      props.put(key, value)
    }
    // connectionProperties should override settings in extraOptions
    props.putAll(connectionProperties)
    val conn = JdbcUtils.createConnection(url, props)

    try {
      var tableExists = JdbcUtils.tableExists(conn, url, table)

      if (mode == SaveMode.Ignore && tableExists) {
        return
      }

      if (mode == SaveMode.ErrorIfExists && tableExists) {
        sys.error(s"Table $table already exists.")
      }

      if (mode == SaveMode.Overwrite && tableExists) {
        JdbcUtils.dropTable(conn, table)
        tableExists = false
      }

      // Create the table if the table didn't exist.
      if (!tableExists) {
        val schema = JdbcUtils.schemaString(df, url)
        val sql = s"CREATE TABLE $table ($schema)"
        conn.createStatement.executeUpdate(sql)
      }
    } finally {
      conn.close()
    }

    JdbcUtils.saveTable(df, url, table, props)
  }




--
View this message in context: 
http://apache-spark-user-list.1001560.n3.nabble.com/No-support-to-save-DataFrame-in-existing-database-table-using-DataFrameWriter-jdbc-tp25603.html
Sent from the Apache Spark User List mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@spark.apache.org
For additional commands, e-mail: user-h...@spark.apache.org

Reply via email to