Size: a a a

2020 April 04

ПФ

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

GP

Grigory Pomadchin in Moscow Spark
.explain
источник

GP

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

ПФ

Паша Финкельштейн... in Moscow Spark
== Physical Plan ==
*(1) SerializeFromObject [assertnotnull(input[0, org.jetbrains.spark.api.examples.Arity1, true]).getA.intValue AS a#19]
+- *(1) MapElements org.jetbrains.spark.api.examples.MapAndListOperationsKt$inlined$sam$i$org_apache_spark_api_java_function_MapFunction$0@7c59cf66, obj#18: org.jetbrains.spark.api.examples.Arity1
  +- *(1) DeserializeToObject staticinvoke(class java.lang.Integer, ObjectType(class java.lang.Integer), valueOf, value#13, true, false), obj#17: java.lang.Integer
     +- *(1) LocalTableScan [value#13]


20/04/04 14:22:01 INFO CodeGenerator: Code generated in 43.771418 ms
Found 1 WholeStageCodegen subtrees.
== Subtree 1 / 1 (maxMethodCodeSize:145; maxConstantPoolSize:167(0.25% used); numInnerClasses:0) ==
*(1) SerializeFromObject [assertnotnull(input[0, org.jetbrains.spark.api.examples.Arity1, true]).getA.intValue AS a#19]
+- *(1) MapElements org.jetbrains.spark.api.examples.MapAndListOperationsKt$inlined$sam$i$org_apache_spark_api_java_function_MapFunction$0@7c59cf66, obj#18: org.jetbrains.spark.api.examples.Arity1
  +- *(1) DeserializeToObject staticinvoke(class java.lang.Integer, ObjectType(class java.lang.Integer), valueOf, value#13, true, false), obj#17: java.lang.Integer
     +- *(1) LocalTableScan [value#13]
источник

GP

Grigory Pomadchin in Moscow Spark
Паша Финкельштейн
        dsOf(1, null, 2, 3)
               .map { c(it) }
               .debugCodegen()
               .show()

минимальный воспроизводимый пример
а что такое c(it) ?
источник

ПФ

Паша Финкельштейн... in Moscow Spark
создание кортежа из одного элемента
источник

ПФ

Паша Финкельштейн... in Moscow Spark
В котлине нет неименованных кортежей, но я сделал )
источник

ПФ

Паша Финкельштейн... in Moscow Spark
просто дата класс с одним полем
источник

ПФ

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

ПФ

Паша Финкельштейн... in Moscow Spark
сигнатура вот такая:
data class Arity1<A>(val a: A)
источник

ПФ

Паша Финкельштейн... in Moscow Spark
При этом если создавать DS сразу из кортежей — то всё работает конечно
dsOf(c(1), c(null),c(2))
источник

GP

Grigory Pomadchin in Moscow Spark
Паша Финкельштейн
А нет способа посмотреть генерируемый код когда wholestage codegen выключен? Или оно тогда вообще е обязано код генерировать?
нету, без хол кодгена он итеративно выполняет план
источник

ПФ

Паша Финкельштейн... in Moscow Spark
Grigory Pomadchin
нету, без хол кодгена он итеративно выполняет план
но где-то в кишочках у него всё равно должна джава генерироваться
источник

ПФ

Паша Финкельштейн... in Moscow Spark
каталист же так работает )
источник

GP

Grigory Pomadchin in Moscow Spark
генерится да; над смотреть
источник

GP

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

N

Nikolay in Moscow Spark
без кодогенерации код не генерится. он вызывает функции. одна из другой. зачем ему джава код без кодегена?
источник

ПФ

Паша Финкельштейн... in Moscow Spark
Nikolay
без кодогенерации код не генерится. он вызывает функции. одна из другой. зачем ему джава код без кодегена?
Ну там же не совсем без кодгена, там без холстейджа
источник

ПФ

Паша Финкельштейн... in Moscow Spark
совсем кодген нельзя выключить
источник

N

Nikolay in Moscow Spark
а какой код он тогда генерит . для чего?
источник