Системная ошибка. Код: 8. Недостаточно устройства хранения данных доступно для обработки этой команды

Один способ сделать это с помощью pyspark & ​​lt; 1.6, который, к сожалению, не поддерживает определяемую пользователем агрегированную функцию:

byUsername = df.rdd.reduceByKey(lambda x, y: x + ", " + y)

, и если вы хотите снова сделать это:

sqlContext.createDataFrame(byUsername, ["username", "friends"])

Начиная с версии 1.6, вы может использовать collect_list , а затем присоединиться к созданному списку:

from pyspark.sql import functions as F
from pyspark.sql.types import StringType
join_ = F.udf(lambda x: ", ".join(x), StringType())
df.groupBy("username").agg(join_(F.collect_list("friend").alias("friends"))

38
задан Marius 4 February 2009 в 10:16
поделиться

4 ответа

Если Ваша программа использует много ресурсов окон, это могла бы быть нехватка "кучи" Ресурса.

существует ключ реестра, который может быть увеличен для повышения размера "кучи" для XP. Для Vista Microsoft уже устанавливает значение по умолчанию выше. Я рекомендую изменить значение по умолчанию 3072 по крайней мере на 8 192.

Эта информация документируется в База знаний мс (или поиск "Из Памяти"). Дополнительные детали относительно значений параметров могут быть найдены в статье KB184802 .

, я предполагаю, что Вы читаете статью базы знаний, но основная информация об изменении:

  1. Редактор реестра Выполнения (REGEDT32.EXE).

  2. От поддерева HKEY_ LOCAL_MACHINE, перейдите к следующему ключу:

    \System\CurrentControlSet\Control\Session Manager\SubSystem
    
  3. На правой стороне экрана дважды щелкают по ключу:

    windows 
    
  4. На всплывающем окне Вы будете видеть очень длинное выбранное поле. Переместите курсор около начала строки, ища это (значения могут варьироваться):

    SharedSection=1024,3072,512
    
  5. SharedSection указывает Систему и настольную "кучу" с помощью следующего формата: SharedSection=xxxx,yyyy,zzz то, где xxxx определяет максимальный размер "кучи" в масштабе всей системы (в килобайтах), yyyy, определяет размер на настольную "кучу", и zzz определяет размер настольной "кучи" для "неинтерактивной" станции окна.

  6. Изменение ТОЛЬКО эти yyyy значение к 8 192 (или больше) и нажимают OK.

  7. Выход Редактор реестра и перезагрузка ПК для изменения для вступления в силу.

Удача.

27
ответ дан NGLN 10 October 2019 в 07:09
поделиться

Могли быть ошибки в компиляторе, это - справедливая ставка, это - что-то в Вашем приложении, которое вызывает проблему. Могло случиться так, что Ваше приложение пропускает дескрипторы окна или некоторый другой объект GUI как перья/кисти? Это могло быть причиной.

1
ответ дан bluish 10 October 2019 в 07:09
поделиться

Вы можете использовать Desktop Heap Monitor от Microsoft для просмотра статистики кучи (использовать% и т. Д.), Он доступен по адресу:

http://www.microsoft.com/downloads/details. aspx? familyid = 5cfc9b74-97aa-4510-b4b9-b2dc98c8ed8b & displaylang = en

2
ответ дан 27 November 2019 в 03:23
поделиться

Я заметил эту ошибку (Системная ошибка. Код: 8. Недостаточно памяти ...) недавно при использовании кода Твена, это происходило на моем компьютере, а не на моем коллеге, и единственное реальная разница между нашими машинами заключается в том, что я использую экран ноутбука в качестве второго монитора, поэтому мои общие размеры рабочего стола больше.

Я нашел документацию по проблеме, упомянутой выше Стивом Блэком, но я нашел способ (который устранил ошибка на моей машине, по крайней мере), которая не требует редактирования реестра:

Старый код использовал

  DC := GetDC(Owner.VirtualWindow);
  // ...
  ReleaseDC(Owner.VirtualWindow, DC);

, и я обнаружил, что замена его на это избавила меня от ошибок

  DC := CreateCompatibleDC(Owner.VirtualWindow);
  // ...
  DeleteDC(DC);


Я не знаю, это имеет отношение к вашей проблеме, но может быть полезным для других в будущем.

2
ответ дан 27 November 2019 в 03:23
поделиться
Другие вопросы по тегам:

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