Spark: вычислить сложную статистику - PullRequest
0 голосов
/ 30 мая 2018

У меня есть сильная статистика для расчета с искрой.Из фрейма данных необходимо вычислить около 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()

Но мне кажется, что это общая проблема.Есть ли какая-то модель, чтобы сделать это с помощью искры, или лучшее решение?

...