我对数据库、duckdb 和 arrow 一无所知——因此很可能会陷入困境。 我的硬盘上有一个很大的 CSV 文件 (7.5 GB)。在 R 中,不将其加载到我的内存中,我想:
然后将此子集数据集加载到 R 中。
我该怎么做?根据我在网上找到的信息,我正在努力理解如何做到这一点。
如果硬盘上有足够的空间,我会使用
将csv导入到duckdb文件中library(duckdb)
con <- DBI::dbConnect(duckdb::duckdb(), "your.duckdb")
duckdb::duckdb_read_csv(con, "your_tbl", "your.csv")
现在您可以使用 SQL 来获取有关列的信息,例如
stmt <- paste0(
"SELECT column_name, data_type FROM ",
"information_schema.columns WHERE ",
"table_name = 'your_tbl';"
)
DBI::dbGetQuery(con, stmt)
并选择您的行,例如
stmt <- paste0(
"SELECT your_col1, your_col2 FROM your_tbl ",
"WHERE your_col3>0;"
)
dat <- DBI::dbGetQuery(con, stmt)