Spark:计算复杂统计数据

时间:2018-05-30 07:24:41

标签: apache-spark sum apache-spark-sql union

我有强大的统计数据来计算火花。从数据框中,必须计算大约50个KPI(每个KPI具有不同的过滤器和总和或平均...),按5列分组。

预期结果如下:

col1 col2 col3 col4 kpi1 kpi2 ... kpi50

我对每个kpis都有不同的请求(适用于相同的数据帧)。我正在寻找最优化的方式来实现它。

我目前的解决方案是计算每个KPI,其他kpi的值为0,如

    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()

但在我看来,这似乎是一个常见的问题。是否有一种模式可以用火花或更好的解决方案来做到这一点?

0 个答案:

没有答案