Spark Pivot Groupby 性能非常慢

Gee*_*ngh 9 pivot group-by dataframe apache-spark

我正在尝试旋转原始数据大小 6 GB 的数据帧,它过去需要 30 分钟的时间(聚合函数sum):

x_pivot = raw_df.groupBy("a", "b", "c", "d", "e","f")
                .pivot("g")
                .agg(sum(raw_df("h")
                .cast(DoubleType))
                .alias(""), sum(raw_df("i"))
                .alias("i"))
Run Code Online (Sandbox Code Playgroud)

当我将聚合函数更改为第一个时,它开始需要 1.5 小时。您能否帮助我理解为什么聚合函数会影响性能以及如何提高性能?

May*_*gar 7

为了获得最佳性能,请指定数据透视列的不同值(如果您知道它们)。否则,将立即启动一项工作来确定它们。

像这样,在 as列表中

x_pivot = raw_df.groupBy("a", "b", "c", "d", "e","f")
    .pivot("g",["V1","V2","V3"])
    .agg(sum(raw_df("h")
    .cast(DoubleType))
    .alias(""), sum(raw_df("i"))
    .alias("i"))
Run Code Online (Sandbox Code Playgroud)

V1、V2、V3 是“g”列中的不同值。