Tôi muốn biết liệu có giới hạn về số hàng có thể đọc được bằng hàm fread data.table hay không. Tôi đang làm việc với một bảng với 4 tỷ hàng, 4 cột, khoảng 40 GB. Có vẻ như fread sẽ chỉ đọc ~ 840 triệu hàng đầu tiên. Nó không đưa ra bất kỳ lỗi nào nhưng trả về dấu nhắc R như thể nó đã đọc tất cả dữ liệu!Giới hạn hàng cho dữ liệu.trong R bằng cách sử dụng fread
Tôi hiểu rằng fread không dành cho "prod use" vào lúc này và muốn tìm hiểu xem có bất kỳ khung thời gian nào để triển khai bản phát hành sản phẩm hay không.
Lý do tôi đang sử dụng data.table là, cho các tập tin có kích thước như vậy, nó là vô cùng hiệu quả trong việc xử lý dữ liệu so với tải các tập tin trong một data.frame vv
Tại thời điểm này, tôi đang cố gắng 2 lựa chọn thay thế khác -
1) Sử dụng quét và truyền lại cho một data.table
data.table(matrix(scan("file.csv",what="integer",sep=","),ncol=4))
Resulted in --
Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings, :
too many items
2) Breaking file ra thành nhiều phân đoạn riêng lẻ với một giới hạn khoảng. 500 triệu hàng bằng cách sử dụng Unix tách và đọc chúng tuần tự ... sau đó lặp lại các tập tin tuần tự vào fread - một chút rườm rà, nhưng dường như là giải pháp khả thi duy nhất.
Tôi nghĩ rằng có thể có một cách Rcpp để làm điều này thậm chí nhanh hơn, nhưng tôi không chắc chắn cách nó thường được thực hiện.
Xin cảm ơn trước.
Hãy chắc chắn rằng không có gì bất thường trong tập tin của bạn trong dòng cuối cùng đã được đọc hoặc dòng sau đó là gì và sau đó [nộp] (https: // r-rèn. r-project.org/tracker/?group_id=240) báo cáo lỗi hoặc liên hệ với mantainer gói. – Roland
Bạn có chắc là bạn có đủ RAM không? Và bạn đang làm việc với 64bit R? – eddi
Không, không nhất thiết phải là cách nhanh hơn với Rcpp vì Matt đã sử dụng mmap. Kiểm tra tài liệu hệ điều hành của bạn để biết giới hạn về cuộc gọi mmap. Hàng tỷ có thể đang đẩy nó ... –