[英]Alternate for dbwritetable to write tables from R to sql server
我有超过4000行和大约10列的本地数据框。 当前使用dbWriteTable函数使用R将表写入SQL Server。但是,它的运行速度非常慢(耗时30分钟以上),是否可以使用其他替代方法来更快地完成此操作?
考虑将数据帧导出到csv并运行SQL Server的BULK INSERT :
BULK INSERT myNewTable
FROM 'C:\Path\To\File.csv'
WITH
(
FORMAT = 'CSV',
FIRSTROW = 2,
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n',
TABLOCK
)
或者,将csv保存为Excel格式(.xlsx)或直接从R保存为Excel格式,然后在生成表操作中运行分布式查询 :
-- Adjust path and sheet name
SELECT *
INTO myNewTable
FROM OPENDATASOURCE('Microsoft.ACE.OLEDB.12.0',
'Data Source=C:\Path\To\File.xlsx;Extended Properties=Excel 12.0')...SheetName$
SELECT *
INTO myNewTable
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
'Data Source=C:\Path\To\File.xlsx;Extended Properties=Excel 12.0', SheetName$)
笔记
Microsoft.JET.OLEDB.4.0
并将Excel文件保存为较旧的.xls
格式,其属性为Excel 8.0
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.