Spark Pivot Groupby производительность очень медленно - PullRequest
0 голосов
/ 11 мая 2018

Я пытаюсь развернуть фрейм данных необработанных данных размером 6 ГБ, и это занимало 30 минут времени (функция агрегирования сумма ):

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

Когда я изменил агрегатную функцию на сначала , это заняло 1,5 часа. Не могли бы вы помочь мне понять, почему функция агрегации влияет на производительность и как я могу улучшить производительность?

1 Ответ

0 голосов
/ 26 августа 2018

Для лучшей производительности укажите отличительные значения вашего столбца сводки (если вы их знаете).В противном случае сразу будет запущено задание для их определения.

, например, в виде Список

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

V1, V2, V3 - это различные значения из "gстолбец

...