小编Nha*_*inh的帖子

Spark SQL失败,因为"常量池已超过JVM限制0xFFFF"

我在EMR 4.6.0 + Spark 1.6.1上运行此代码:

val sqlContext = SQLContext.getOrCreate(sc)
val inputRDD = sqlContext.read.json(input)

try {
    inputRDD.filter("`first_field` is not null OR `second_field` is not null").toJSON.coalesce(10).saveAsTextFile(output)
    logger.info("DONE!")
} catch {
    case e : Throwable => logger.error("ERROR" + e.getMessage)
}
Run Code Online (Sandbox Code Playgroud)

在最后阶段saveAsTextFile,它失败并出现此错误:

16/07/15 08:27:45 ERROR codegen.GenerateUnsafeProjection: failed to compile: org.codehaus.janino.JaninoRuntimeException: Constant pool has grown past JVM limit of 0xFFFF
/* 001 */
/* 002 */ public java.lang.Object generate(org.apache.spark.sql.catalyst.expressions.Expression[] exprs) {
/* 003 */   return new SpecificUnsafeProjection(exprs);
/* 004 */ }
(...)
Run Code Online (Sandbox Code Playgroud)

可能是什么原因?谢谢

java scala amazon-emr apache-spark

6
推荐指数
2
解决办法
2962
查看次数

标签 统计

amazon-emr ×1

apache-spark ×1

java ×1

scala ×1