"Одна из оптимизаций адаптивки У меня есть много запросов вида ""select ... from ... order by"". В какой-то момент я заметила, что иногда джобы стартуют, а иногда нет, но считается все нормально. Но разобраться-то все равно интересно) ☕️ Я смотрю план запроса у таблиц. Initial Plan у них одинаковый - чтение, селект, сортировка: ``` == Initial Plan == Sort +- Exchange +- Project +- BatchScan catalog.schema.table ``` ☕️ Смотрю финальный план 1 таблица (запускает джобу): ``` == Final Plan == AQEShuffleRead +- ShuffleQueryStage, Statistics(sizeInBytes=368.0 B, rowCount=1) +- Exchange +- * Project +- BatchScan catalog.schema.table1 ``` Длительность - 4с 2 таблица (не запускает джобу): ``` == Final Plan == LocalTableScan``` Длительность - 10мс И причем тут LocalTableScan? ☕️ Прикол в том, что во второй табличке 0 строк. И включена адаптивка (spark.sql.adaptive.enabled = true). Адаптивка в спарке понимает, что бессмысленно шафлить 0 строк данных, и возвращает результат за несколько мс @data_engineerette"