Size: a a a

2021 September 16

NN

No Name in Data Engineers
Так...речь же о количестве колонок в датафрейме, да? А что, если их больше?
источник

ИК

Иван Калининский... in Data Engineers
sparkSession.conf.get("spark.sql.codegen.maxFields") - The maximum number of fields (including nested fields) that will be supported before deactivating whole-stage codegen.
источник

NN

No Name in Data Engineers
Вот блин.
А ты эмпирически вывел, что около 170 полей ещё норм отрабатывает? И что происходит, если полей больше?
источник

ИК

Иван Калининский... in Data Engineers
пока это самая широкая таблица, с которой я поработал))
Но рядом лежат таблички на 600+ полей, на них включать кодоген не пробовал
источник

NN

No Name in Data Engineers
Блин.
У нас есть жирные, несколько тысяч атрибутов.
И используются оч активно.
Я раньше слышал про какие-то сложности с кодгеном в таких случаях, но подозревал, что речь о, не знаю, хотя бы нескольких тысячах полей, а уж никак не о полутора сотнях.
Придется тестить.
И это при том, что я не совсем понимаю, что надо ловить.
Кодген не случится? Будет медленнее? Неоптимальнее?
источник

AZ

Anton Zadorozhniy in Data Engineers
"Оптимально" не бывает в сравнительной степени
источник

AZ

Anton Zadorozhniy in Data Engineers
(извините)
источник

NN

No Name in Data Engineers
Ну блин, не топите меня в этом, пожалуйста)
источник

ИК

Иван Калининский... in Data Engineers
ничего страшного, просто будет работать скомпилированный scala-код
источник

NN

No Name in Data Engineers
А ты не замерял, насколько это дороже/медленнее?
источник

ИК

Иван Калининский... in Data Engineers
специально не замерял, но, похоже, в пределах погрешности))
источник

ИК

Иван Калининский... in Data Engineers
во всяком случае, если раньше серьёзных задержек не замечали, то и сейчас не обращайте внимания
источник

NN

No Name in Data Engineers
Я замечаю много задержек, поэтому чем больше причин установлю, тем лучше)
источник

A

Alex in Data Engineers
посмотрите на план запроса в ui
там же видно всё будет
источник

NN

No Name in Data Engineers
Не, ну так если, например, я в конфиге пропишу spark.sql.codegen.maxFields=4000, и из-за этого все ещё ползать будет, то я, скорее всего, ничего в плане запроса не увижу.
источник

A

Alex in Data Engineers
на ui рисуется где codegen а где нет
плюс в логах драйвера есть сообщения по поводу слишком длинных методов
источник

A

Alex in Data Engineers
источник

NN

No Name in Data Engineers
Это я понял.
Я имел в виду, что если я (или не я) выкручу до максимума этот параметр, то я не знаю, что именно мне отлавливать - oom, замедление, замену кодгена, что-то ещё?
источник

A

Alex in Data Engineers
смотрите что-то вроде этой ошибки

Generated method too long to be JIT compiled:
источник

NN

No Name in Data Engineers
Ага, понял
источник