Description
For sufficiently wide or nested Java Objects, when SpecificSafeProjection attempts to recreate the object from an InternalRow, the generated SpecificSafeProjection.apply method is larger than allowed:
Caused by: org.codehaus.janino.JaninoRuntimeException: Code of method "apply(Ljava/lang/Object;)Ljava/lang/Object;" of class "org.apache.spark.sql.catalyst.expressions.GeneratedClass$SpecificSafeProjection" grows beyond 64 KB
Although related, this issue appears not to have been resolved by SPARK-15285. Since there is only one top-level object when projecting, splitExpressions finds no additional Expressions to split. The result is a single large, nested Expression that forms the apply code.
See the reproducer for an example [1].
[1] - https://github.com/bdrillard/specific-safe-projection-error
Attachments
Issue Links
- is related to
-
SPARK-15285 Generated SpecificSafeProjection.apply method grows beyond 64 KB
- Resolved
- links to