Увеличить доступную память в R на Ubuntu [дубликат]

Да Наконец я получил решение. Включите эти библиотеки.

import org.apache.spark.sql.Row
import org.apache.spark.rdd.RDD
import org.apache.spark.rdd
import org.apache.spark.util.SizeEstimator

Как найти RDD Size:

def calcRDDSize(rdd: RDD[String]): Long = {
  rdd.map(_.getBytes("UTF-8").length.toLong)
     .reduce(_+_) //add the sizes together
}

Функция для определения размера DataFrame: (Эта функция просто преобразует DataFrame в RDD внутренне)

val dataFrame = sc.textFile(args(1)).toDF() // you can replace args(1) with any path

val rddOfDataframe = dataFrame.rdd.map(_.toString())

val size = calcRDDSize(rddOfDataframe)
1
задан user189035 18 March 2016 в 09:51
поделиться

1 ответ

Я думаю, что это должно быть обработано операционной системой. Нет встроенного ограничения, о котором я знаю; если необходимо, R будет использовать всю память, которую он может получить.

Чтобы получить информацию об итогах и / или в доступной памяти в Linux, вы можете попробовать

system('grep MemTotal /proc/meminfo')

или

system('free -m')

или

system('lshw -class memory')

Последняя команда будет жаловаться, что вы должны запускать ее как суперпользователя, и она даст предупреждение о том, что вывод может быть неточным; но по моему опыту он все равно предоставит довольно полезный вывод.


. Чтобы получить информацию об использовании памяти используемого сценария R, можно либо контролировать используемые в данный момент ресурсы, запустив top в отдельный терминал или использовать, например, следующий системный вызов из сценария R:

system(paste0("cat /proc/",Sys.getpid(),"/status | grep VmSize"))

Надеюсь, что это поможет.

2
ответ дан RHertel 17 August 2018 в 21:50
поделиться
  • 1
    Благодаря! Но у меня создается впечатление, что memory.size() дает след памяти R proc и что команды, которые вы дали, дают ограничения памяти, назначенные R (что-то более похожее на команду R / windows` memory.limit()), – user189035 18 March 2016 в 11:33
  • 2
    @ user189035 Кажется, есть недоразумение. Ограничения памяти не назначены для процесса R, кроме общей доступной памяти. Я отредактировал ответ, чтобы включить возможность отображения памяти, используемой запущенным R-процессом. Надеюсь это поможет. – RHertel 18 March 2016 в 18:18
Другие вопросы по тегам:

Похожие вопросы: