У меня есть следующий код, написанный на Spark с использованием Scala и SQL API:
sourceData
.groupBy($"number")
.agg(
countDistinct(when(...something...)),
countDistinct(when(...something...)),
countDistinct(when(...something...)),
countDistinct(when(...something...))),
countDistinct(when(...something...)))
Когда я проверяю план выполнения, Spark внутренне выполняет что-то под названием «расширение» и умножает записи 5 раз (для каждого счетаотдельный столбец).Поскольку у меня уже есть миллиарды записей, это становится очень неэффективным.Есть ли способ сделать это более эффективным способом, и, пожалуйста, не говорите countApproxDistinct, поскольку мне нужны точные значения:)