如何使用 R 将多个 csv 文件上传到 SQL 服务器数据库
How to upload multiple csv files to a SQL server Database using R
我的计算机中有一个文件夹,其中包含 50 多个不同的 csv 文件,名称不同,变量数量也不同。我必须将它们上传到 SQL 服务器,而不是一个一个地上传它们,我想问一下如何在保持原始名称的同时批量上传它们。我已经尝试创建一个列表 csv <- dir(pattern = "csv")
,然后使用 RIO::export_list
函数,但还没有弄清楚如何将它与 DBI::dbWriteTable
一起使用。如果过去有人处理过这个问题可以帮助我,我将不胜感激。
像@r2evans 一样,我使用 DBI 而不是 dbplyr(我经常一起使用这两个包)。
下面是我使用的自定义函数的简化版本。你可以找到完整版 here.
copy_r_to_sql <- function(db_connection, db, schema, sql_table_name, r_table_name) {
suppressMessages( # mutes translation message
DBI::dbWriteTable(
db_connection,
DBI::Id(
catalog = db,
schema = schema,
table = sql_table_name
),
r_table_name
)
)
}
要上传多个表,循环遍历它们或apply
。
我的计算机中有一个文件夹,其中包含 50 多个不同的 csv 文件,名称不同,变量数量也不同。我必须将它们上传到 SQL 服务器,而不是一个一个地上传它们,我想问一下如何在保持原始名称的同时批量上传它们。我已经尝试创建一个列表 csv <- dir(pattern = "csv")
,然后使用 RIO::export_list
函数,但还没有弄清楚如何将它与 DBI::dbWriteTable
一起使用。如果过去有人处理过这个问题可以帮助我,我将不胜感激。
像@r2evans 一样,我使用 DBI 而不是 dbplyr(我经常一起使用这两个包)。
下面是我使用的自定义函数的简化版本。你可以找到完整版 here.
copy_r_to_sql <- function(db_connection, db, schema, sql_table_name, r_table_name) {
suppressMessages( # mutes translation message
DBI::dbWriteTable(
db_connection,
DBI::Id(
catalog = db,
schema = schema,
table = sql_table_name
),
r_table_name
)
)
}
要上传多个表,循环遍历它们或apply
。