2017-01-26 12 views
0

Я читаю данные из файла в R dataframe. Размерность dataframe является 1788228 10. Поскольку это огромное, когда я пытаюсь преобразовать в SparkDataFrame, я получаю это предупреждение:Исключение в потоке «dispatcher-event-loop-0» java.lang.OutOfMemoryError: Java heap space

WARN scheduler.TaskSetManager: Stage 0 contains a task of very large size (48092 KB). The maximum recommended task size is 100 KB.

и когда я пытаюсь выполнить любую операцию действия, как

dim(df)

он дает мне ошибку ниже

Exception in thread "dispatcher-event-loop-0" java.lang.OutOfMemoryError: Java heap space

Из других сообщений, таких как Spark using python: How to resolve Stage x contains a task of very large size (xxx KB). The maximum recommended task size is 100 KB, я мог понять, что его происходит потому, что dataframe очень большой по размеру. Но как уменьшить размер? Сообщение также предлагает трансляцию. Как мы это делаем, используя R? Помогите.

+0

Какую функцию вы используете, чтобы загрузить свою базу данных в Spark? –

+0

@j df = as.DataFrame (rdf) –

+0

Если вы хотите загрузить фрейм данных, чтобы искра и игра с ним, вы также можете использовать sparklyr (http://spark.rstudio.com/). После установки и подключения к кластеру с чем-то вроде этого: sc <- spark_connect (master = "local") 'вы можете загружать свои данные в искрообразование, используя' your_table_ref <- copy_to (sc, df) '. Это другой способ сделать это, но это может быть полезно. –

ответ

0

Проблемы с памятью Java - это кошмар. Удостоверьтесь, что вы rm() как можно больше от рабочего пространства и gc(), напишите его в конце цикла, чтобы очистить каждую итерацию, если сможете!

И, попробуйте прочитать данные в строке кадра, по строке и сохранить его в кадре данных искры.

здесь учебник по прочтению его пошагово:

read line by line

Вы можете самостоятельно с искровой частью.

 Смежные вопросы

  • Нет связанных вопросов^_^