Я думаю, что вместо этого вы должны использовать функцию dbCreateTable
или dbWriteTable()
из пакета DBI
.
В вашем случае вы можете отправить df
в следующем виде:
data <- DBI::dbCreateTable(con, "impala_new_df", df)
Где con
- это соединение с вашей базой данных, "impala_new_df"
- это имя новой таблицы, требуемой в Impala, а df
- это фрейм данных, с которого вы пишете.Для этого вам, очевидно, потребуется доступ на чтение / запись к вашему экземпляру Impala.
Я считаю, что функция dbSendUpdate
взята из пакета RJDBC
.Который будет работать только если ваше соединение jdbc
, а не odbc
.Кроме того, я не верю, что использование paste0
будет вести себя так, как вы этого хотите.
Вот полезный справочник по базам данных в R: https://db.rstudio.com/odbc/
Update
Поскольку вы используете RJDBC
, я считаю, что должно работать следующее:
dbSendUpdate(con, "Create Table ?", df)
Аналогично решению, приведенному здесь: https://stackoverflow.com/a/35407579/6535514
Если это не сработаетЯ бы начал искать в пакете implyr
другие способы обойти это