Я пытаюсь оценить в pyspark сумму всех элементов фрейма данных. Я написал следующую функцию
def sum_all_elements(df):
df = df.groupBy().sum()
df = df.withColumn('total', sum(df[colname] for colname in df.columns))
return df.select('total').collect()[0][0]
Для ускорения функции я попытался преобразовать в rdd и суммировать как
def sum_all_elements_pyspark(df):
res = df.rdd.map(lambda x: sum(x)).sum()
return res
Но, очевидно, функция rdd медленнее, чем функция фрейма данных. Есть ли способ ускорить работу функции rdd?