Size: a a a

2021 October 18

ПФ

Паша Финкельштейн... in Moscow Spark
У, точно
источник

GP

Grigory Pomadchin in Moscow Spark
инстанс каждого на тред имей тада ок
источник

ПФ

Паша Финкельштейн... in Moscow Spark
Тогда понятно почему они не закешировали из коробки
источник

GP

Grigory Pomadchin in Moscow Spark
да
источник

GP

Grigory Pomadchin in Moscow Spark
в общем случае не работает
источник

GP

Grigory Pomadchin in Moscow Spark
если ограниченное число кодеков то пойдет
источник

GP

Grigory Pomadchin in Moscow Spark
часто у тебя мало их
источник

ПФ

Паша Финкельштейн... in Moscow Spark
Я схемы из коробки закешировал, у них нет стейта мутабельного
источник

ПФ

Паша Финкельштейн... in Moscow Spark
Лан, я планирую на докладе сказать что каждый экзекьютор сам себе всё генерит, если найдёте опроержение — я прям рад буду услышать )
источник

ПФ

Паша Финкельштейн... in Moscow Spark
Потому что пока что весь код который мне видно — это прям компиляция и загрузка по месту
источник

NN

No Name in Moscow Spark
Что за доклад?
источник

GP

Grigory Pomadchin in Moscow Spark
ждем @xhumanoid
источник

АК

Александр Кунцевич... in Moscow Spark
+1 Что за доклад?
источник

GP

Grigory Pomadchin in Moscow Spark
Паша, мы требуем ссылку
источник

A

Alex in Moscow Spark
источник

A

Alex in Moscow Spark
и дальше по тексту
источник

A

Alex in Moscow Spark
сразу попытка проверить что скомпилилось
CodeGenerator.compile(cleanedSource)

проверяем все статистики
при необходимости кидаем
logWarning(s"Whole-stage codegen disabled for plan (id=$codegenStageId):\n $treeString")

дальше размеры проверяем

// Check if compiled code has a too large function
if
(compiledCodeStats.maxMethodCodeSize > conf.hugeMethodLimit) {
 
logInfo(s"Found too long generated codes and JIT optimization might not work: " +
   s"the bytecode size (
${compiledCodeStats.maxMethodCodeSize}) is above the limit " +
   s"
${conf.hugeMethodLimit}, and the whole-stage codegen was disabled " +
   s"for this plan (id=
$codegenStageId). To avoid this, you can raise the limit " +
   s"`
${SQLConf.WHOLESTAGE_HUGE_METHOD_LIMIT.key}`:\n$treeString")
 
return child.execute()
}


потом на входной рдд в mapPartitionsWithIndex делаем
val (clazz, _) = CodeGenerator.compile(cleanedSource)
и дальше уже скармливаем в полученный инстанс класса наши данные
источник

GP

Grigory Pomadchin in Moscow Spark
так мне кажется код генерится на каждом ехекуторе и если возможно кешируется на нем
источник

A

Alex in Moscow Spark
нет, эта часть выполняется на драйвере
источник

A

Alex in Moscow Spark
ты часто видел Whole-stage codegen disabled на воркерах?
источник