У меня есть сильная статистика для расчета с искрой.Из фрейма данных необходимо вычислить около 50 KPI (каждый с разными фильтрами и суммами или средними значениями ...), сгруппированные по 5 столбцам.
Ожидаемый результат:
col1 col2 col3 col4 kpi1 kpi2 ... kpi50
Iиметь разные запросы (для применения к одному и тому же фрейму данных) для каждого kpis.Я ищу наиболее оптимизированный способ для этого.
Мое текущее решение - вычислить каждый KPI, со значением 0 для другого kpi, например
df1.filter(...).select("col1", "col2", "col3", "col4", lit(1) as "col1", "col2", "col3", "col4""kpi1").sum("kpi1").groupBy().withColumn("kpi2", lit(0)).withColumn("kpi3", ....
df2.filter....
, затем выполнить объединениев результате df, затем groupby и sum вроде
df1.union(df2).union(...).groupBy("col1", "col2", "col3", "col4").sum()
Но мне кажется, что это общая проблема.Есть ли какая-то модель, чтобы сделать это с помощью искры, или лучшее решение?