sparksql执行报错grows beyond 64 KB

报错内容Code of method “apply_2 ( L o r g / a p a c h e / s p a r k / s q l / c a t a l y s t / e x p r e s s i o n s / G e n e r a t e d C l a s s (Lorg/apache/spark/sql/catalyst/expressions/GeneratedClass (Lorg/apache/spark/sql/catalyst/expressions/GeneratedClassSpecificUnsafeProjection;Lorg/apache/spark/sql/catalyst/InternalRow;)V” of class “org.apache.spark.sql.catalyst.expressions.GeneratedClass$SpecificUnsafeProjection” grows beyond 64 KB

如果启用了 Project Tungsten,Spark 将使用 codegen 方法为部分执行计划生成 Java 代码。但是,JDK 编译的 Java 代码中的每个函数必须小于 64 KB。如果运行复杂的SQL语句,codegen生成的Java代码中的函数可能会超过64KB,导致编译失败。

解决方法是在客户端的spark-defaults.conf文件中将spark.sql.codegen.wholeStage参数设置为false,关闭Project Tungsten

你可能感兴趣的:(spark,spark,大数据)