Это дополнительный запрос к моему предыдущему одному : следуя этому предложению, я получил процентное изменение строки за строкой, и поскольку первая строка в фрейме данных df_diff (df) была равна нулю, Я сделал:
df_diff = df_diff.dropna()
df_diff.count()
Второе утверждение выдает следующую ошибку:
Py4JJavaError: An error occurred while calling o1844.count.
: java.lang.OutOfMemoryError: Java heap space
Когда я пытаюсь использовать приведенный выше код на игрушечном df, опубликованном в предыдущем посте, он работает нормально, но с моимфактический фрейм данных (834 строки, 51 столбец) происходит вышеупомянутая ошибка.Любое руководство относительно того, почему это происходит и как справиться с этим, будет высоко ценится.Спасибо
РЕДАКТИРОВАТЬ:
В моем фактическом кадре данных (df) 834 X 51, первый столбец - дата, а остальные столбцы закрывают цены акций для 50 акций, для которых я пытаюсьполучить ежедневные процентные изменения.Разделение окна по дате col не имело значения для предыдущей ошибки в этом файле df в pyspark, и, похоже, нет другого естественного кандидата для разделения.
Единственное, что сработало, было сделать это в спарк-оболочке.Здесь без разделов я получал предупреждающие сообщения ...
WindowExec: No Partition Defined for Window operation! Moving all data to a single partition, this can cause serious performance degradation.
... пока я не вызвал cache () на фрейме данных, но это не идеально для большого df