Я пишу код в pyspark, где я делаю фильтрацию, объединение, unionall, groupby.Оптимизация в pyspark
Но я заметил, что перед групповым отключением функция count() занимает 9 минут, а после groupby функция count() занимает 35 минут. Мне нужно несколько советов о том, как оптимизировать предложение groupby, чтобы сократить время обработки.
Параметры конфигурации: исполнитель памяти 12G Num-исполнителей 50 исполнитель сердечники памяти 5 Драйвер 40g размер данных около 1 ТБ
Фрагмент кода, например:
dataframeA = hc.sql("select * from tableA")
dataframeB = hc.sql("select * from tableB")
dataframeC = hc.sql("select * from tableC")
dataframeD = dataframeA.unionAll(dataframeB)
dataframeE = dataframeD.join(dataframeC, col1 == col2, 'left_outer')
dataframeF = dataframeE.groupby ([col1, col2]
.agg({
max("col3"),
sum("col4")/ sum("col5"),
...
})
предложения?
, чтобы быть в состоянии помочь вам отправить ваш код (или, по крайней мере, упростить его) –
Добавлен фрагмент кода для справки. – Renu