我在亚马逊的S3桶上存储了大量的大型CSV文件(每个文件的容量从1.2-1.5GB不等)。我想将这些文件导入/加载到数据库中。
我一直在尝试使用R中的aws.s3包来处理这个问题,但我希望了解如何在将数据加载到内存/将数据保存到物理驱动器方面最有效地做到这一点。
我也愿意听取其他关于如何在R.之外处理这件事的建议,谢谢!
发布于 2019-01-28 22:58:03
您应该避免将csv加载到R中,每个SQL实现都有一种方法可以在csv/text表中批量导入条目。
我在SQL server中找到了以下内容:
BULK INSERT Sales.Orders
FROM '\\SystemX\DiskZ\Sales\data\orders.csv'
WITH ( FORMAT='CSV');https://learn.microsoft.com/en-us/sql/t-sql/statements/bulk-insert-transact-sql?view=sql-server-2017
所以R中的工作流应该是这样的:
1)循环遍历文件,调用aws ls列出所有文件
2) aws cp文件到磁盘
3)调用system命令将CSV大容量插入表(您可以使用Rsqlite或其他R包来帮助自动执行SQL命令。)
4)删除csv文件
https://stackoverflow.com/questions/54411111
复制相似问题