【发布时间】:2018-02-14 17:00:00
【问题描述】:
我需要读取约 20,000 个 csv 文件(约 500GB),然后过滤数据并将它们绑定在一起。我的代码在我只读取约 15,000 个文件时有效,但当我读取约 20,000 个文件时它提示“R 会话中止”。
memory.limit(80000)
ReadCustomer = function(x)
fread(x, encoding = "UTF-8", select = c("customer_sysno", "event_cat2")) %>%
filter(event_cat2 == "***") %>%
select(customer_sysno) %>%
rename(CustomerSysNo = customer_sysno) %>%
mutate(CustomerSysNo = as.numeric(CustomerSysNo)) %>%
filter(CustomerSysNo > 0)
CustomerData = rbindlist(lapply(FileList, ReadCustomer))
我尝试将fread(x, encoding = "UTF-8", select = c("customer_sysno", "event_cat2")) 替换为spark_read_csv(sc, "Data", x),但sparkR 仍然无法正常工作。
如何读取所有文件? Rcpp 会有帮助吗?
【问题讨论】:
-
这个问题与 Rcpp 无关,所以我删除了
rcpp标签。 -
我也有同样的问题。你曾经修复过它吗?
标签: r data.table sparkr