Moscow Spark (@moscowspark) — Telegram-чат | Telegram Dialogs
Все каналы
Moscow Spark

Moscow Spark

@moscowspark

1.4K участников другое 💬 Комментарии открыты

Последние публикации

Moscow Spark
30.06.2026 06:06
У нас числовые идентификаторы все в стринге
Moscow Spark
30.06.2026 06:06
оно же по дефолту включено уже давно
Moscow Spark
30.06.2026 06:04
Spark.sql.execution.useObjectHashAggregateExec не пробовали ?
Moscow Spark
30.06.2026 05:38
https://dataninjago.com/2022/01/06/spark-sql-query-engine-deep-dive-9-sortaggregateexec/
Moscow Spark
30.06.2026 05:36
у нас на днях веселее было видели что sort + spill активно выжирают ресурсы дело оказалось в типах данных event_time is stored as StringType. When Spark aggregates variable-width types it falls back to SortAggregateExec, which sorts all data and can spill to disk. Casting to TimestampType before max/min gives Spark a fixed-width value, enabling HashAggregateExec — an in-memory hash map that avoids the sort entirely. - .agg(max("event_time").as("max_event_time"), min("event_time").as("min_event_time")) + // Cast event_time (StringType) to Timestamp before aggregating so Spark can use // HashAggregateExec (fixed-width buffer) instead of SortAggregateExec (variable-width // buffer), eliminating the full sort + disk spill that dominated the CPU profile. // The zero-padded "yyyy-MM-dd HH:mm:ss" format is self-parseable by Spark's default // timestamp parser, and date_format converts back to the same string the downstream // jobs already compare with < / >= — output type and values are unchanged. .agg( date_format(max($"event_time".cast("timestamp")), "yyyy-MM-dd HH:mm:ss").as("max_event_time"), date_format(min($"event_time".cast("timestamp")), "yyyy-MM-dd HH:mm:ss").as("min_event_time") ) джоба ускорилась неплохо, часть спила и весь сорт ушли ......
Moscow Spark
30.06.2026 03:17
Привет, был у меня как то случай таблица вызывала spillls. Заглянув в таблицу с паркетами они были разного размера один 400мб другой 600мб размеры у всех разные. Занимали они суммарно 25гб. Сделали обычный repartition таблица стала весить 138гб и spills ушли, понятно, что это из за сжатия, но как это повлияло на на join объяснить не могу.
Moscow Spark
29.06.2026 18:18
spark.sql.adaptive.enabled=true spark.sql.adaptive.coalescePartitions.enabled=true spark.sql.adaptive.coalescePartitions.minPartitionNum=1 spark.sql.adaptive.advisoryPartitionSizeInBytes=128MB //это размер без сжатия. Подбирается под свои нужды
Moscow Spark
29.06.2026 18:16
spark.sql.optimizer.plannedWrite.enabled false включите, это выключит сортировку при записи с partitionBy
Moscow Spark
29.06.2026 18:11
И дефолтное значение у него Integer.MAX_VALUE, судя по нагугленному.
Moscow Spark
29.06.2026 18:06
Нет такого параметра
Чат поддержки
Ответим здесь же, обычно быстро
Здравствуйте! Напишите ваш вопрос — оператор ответит в этом чате.