У меня есть DataFrame, содержащий 752 (идентификатор, дата и 750 столбцов объектов) и около 1,5 миллионов строк, и мне нужно применить накопительную сумму ко всем 750 столбцам объектов, разделенных по идентификатору и порядку по дате.
Ниже представлен подход, которому я следую в настоящее время:
# putting all 750 feature columns in a list
required_columns = ['ts_1','ts_2'....,'ts_750']
# defining window
sumwindow = Window.partitionBy('id').orderBy('date')
# Applying window to calculate cumulative of each individual feature column
for current_col in required_columns:
new_col_name = "sum_{0}".format(current_col)
df=df.withColumn(new_col_name,sum(col(current_col)).over(sumwindow))
# Saving the result into parquet file
df.write.format('parquet').save(output_path)
Я получаю ошибку ниже при выполнении этого текущего подхода
py4j.protocol.Py4JJavaError: An error occurred while calling o2428.save.
: java.lang.StackOverflowError
Пожалуйстадайте мне знать альтернативное решение для того же.кажется, что накопленная сумма немного сложна с большим количеством данных.Пожалуйста, предложите любой альтернативный подход или любые конфигурации искры, которые я могу настроить, чтобы он работал.