使用fread从大文件(大约50 GB)中读取前n行时,出现以下错误。看起来是内存问题。我尝试使用nrows=1000。但是没有运气。使用Linux

file ok but could not memory map it. This is a 64bit process. There is probably not enough contiguous virtual memory available.

可以将下面的所有代码替换为read.csv来替换下面的代码吗?有帮助吗?
  rdata<- fread(
      file=csvfile, sep= "|", header=FALSE, col.names= colsinfile,
    select= colstoselect, key = "keycolname", na.strings= c("", "NA")
    , nrows= 500
  )

最佳答案

另一个解决方法是使用shell命令获取前500行:

rdata<- fread(
    cmd = paste('head -n 500', csvfile),
    sep= "|", header=FALSE, col.names= colsinfile,
    select= colstoselect, key = "keycolname", na.strings= c("", "NA")
)

我不知道为什么nrows不起作用。

关于r - 读取大文件中的前n行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52492986/

10-12 17:10