read.xlsx занимает очень много времени и тонны памяти
Я пытаюсь загрузить файл.xlsx в R, который имеет один лист и имеет размер около 31 МБ.
Я запускаю следующее
options( java.parameters = "-Xmx6g" )
require(xlsx)
yt = read.xlsx("big_spreadsheet.xlsx",1)
и я ничего не получаю. Моя программа системного монитора показывает, что выделенная память медленно заполняется, а затем просто остается заполненной. Я не давал ему работать часами, но десяти минут должно быть достаточно, особенно когда я мог просто загрузить Numbers (я на Mavericks) и сохранить его как CSV-файл за это время.
Да, у меня гораздо больше, чем 6 ГБ памяти. 2 ГБ кажется недостаточно, и выдает ошибку:
Error in .jcall("RJavaTools", "Ljava/lang/Object;", "invokeMethod", cl, :
java.lang.OutOfMemoryError: Java heap space
Я, однако, сделал ошибку, позволив rJava
Пакет установки собственной версии Java. Я скачал JDK 8 по факту, но понятия не имею, как проверить, используется ли это.
Так почему же требуется (не удается) 6 ГБ ОЗУ для загрузки файла размером 31 МБ? Можно как-нибудь это исправить?
2 ответа
Я никогда не заставлял это работать. Я в последнее время использую readxl
пакет для чтения из электронных таблиц Excel, который не имеет зависимости от Java и, кажется, работает нормально.
Да, используйте пакет readxl, поскольку для пакета xlsx требуется java, для загрузки которой требуется много времени, и больше шансов, что он вернет ошибку при чтении файла простого размера (даже 2 МБ)
Его очень просто использовать, просто написать
read_excel("path")