42 это как смысл жизни? Пример поэтому.
Spark Bucketing удобен для ETL в Spark, так как Spark Job A записывает данные для t1 в соответствии с определением Bucketing, а Spark Job B записывает данные для t2 аналогичным образом, и Spark Job C объединяет t1 и t2, используя определения Bucketing, избегая перестановок, или обменов. , Оптимизация.
Нет общей формулы. Это зависит от объемов, доступных исполнителей и т. Д. Главное - избежать перетасовки. В качестве руководства по умолчанию для JOINing и AGGr задано значение 200, поэтому подходом может быть 200 или более, но опять же, сколько ресурсов у вас есть на вашем кластере?
Но для удовлетворения вашего стремления к знаниям можно утверждать, что 42 должен действительно быть установлен на количество исполнителей (= 1 ядро), которое вы выделили для Spark Job / App, оставляя в стороне проблему асимметрии.