[ https://issues.apache.org/jira/browse/SPARK-12036?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15031121#comment-15031121 ]
Denny Lee commented on SPARK-12036: ----------------------------------- I just tested it out with the patch and it looks like this resolves it. Thanks! > No applicable constructor/method when calling collect on a Dataset > ------------------------------------------------------------------ > > Key: SPARK-12036 > URL: https://issues.apache.org/jira/browse/SPARK-12036 > Project: Spark > Issue Type: Bug > Components: SQL > Reporter: Yin Huai > Priority: Critical > > In Spark shell, I tried > {code} > case class Person(name: String, age: Int) > val dataframe = > sqlContext.read.json("/Users/yhuai/Projects/Spark/yin-spark-2/examples/src/main/resources/people.json") > val ds = dataframe.as[Person] > ds.collect > {code} > Then, I got > {code} > 15/11/28 10:40:51 ERROR GenerateSafeProjection: failed to compile: > org.codehaus.commons.compiler.CompileException: File 'generated.java', Line > 46, Column 67: No applicable constructor/method found for actual parameters > "java.lang.String, long"; candidates are: > "$line15.$read$$iwC$$iwC$Person(java.lang.String, int)" > /* 001 */ > /* 002 */ public java.lang.Object > generate(org.apache.spark.sql.catalyst.expressions.Expression[] expr) { > /* 003 */ return new SpecificSafeProjection(expr); > /* 004 */ } > /* 005 */ > /* 006 */ class SpecificSafeProjection extends > org.apache.spark.sql.catalyst.expressions.codegen.BaseProjection { > /* 007 */ > /* 008 */ private org.apache.spark.sql.catalyst.expressions.Expression[] > expressions; > /* 009 */ private org.apache.spark.sql.catalyst.expressions.MutableRow > mutableRow; > /* 010 */ > /* 011 */ > /* 012 */ > /* 013 */ public > SpecificSafeProjection(org.apache.spark.sql.catalyst.expressions.Expression[] > expr) { > /* 014 */ expressions = expr; > /* 015 */ mutableRow = new > org.apache.spark.sql.catalyst.expressions.GenericMutableRow(1); > /* 016 */ > /* 017 */ } > /* 018 */ > /* 019 */ public java.lang.Object apply(java.lang.Object _i) { > /* 020 */ InternalRow i = (InternalRow) _i; > /* 021 */ /* newinstance(class > $line15.$read$$iwC$$iwC$Person,invoke(input[1, > StringType],toString,ObjectType(class java.lang.String)),input[0, > LongType],false,ObjectType(class > $line15.$read$$iwC$$iwC$Person),Some($line15.$read$$iwC$$iwC@62303b81)) */ > /* 022 */ /* invoke(input[1, StringType],toString,ObjectType(class > java.lang.String)) */ > /* 023 */ /* input[1, StringType] */ > /* 024 */ boolean isNull4 = i.isNullAt(1); > /* 025 */ UTF8String primitive5 = isNull4 ? null : (i.getUTF8String(1)); > /* 026 */ > /* 027 */ > /* 028 */ boolean isNull2 = primitive5 == null; > /* 029 */ java.lang.String primitive3 = > /* 030 */ isNull2 ? > /* 031 */ null : (java.lang.String) primitive5.toString(); > /* 032 */ isNull2 = primitive3 == null; > /* 033 */ /* input[0, LongType] */ > /* 034 */ boolean isNull6 = i.isNullAt(0); > /* 035 */ long primitive7 = isNull6 ? -1L : (i.getLong(0)); > /* 036 */ /* $line15.$read$$iwC$$iwC@62303b81 */ > /* 037 */ /* expression: $line15.$read$$iwC$$iwC@62303b81 */ > /* 038 */ java.lang.Object obj10 = expressions[0].eval(i); > /* 039 */ boolean isNull8 = obj10 == null; > /* 040 */ $line15.$read$$iwC$$iwC primitive9 = null; > /* 041 */ if (!isNull8) { > /* 042 */ primitive9 = ($line15.$read$$iwC$$iwC) obj10; > /* 043 */ } > /* 044 */ > /* 045 */ > /* 046 */ $line15.$read$$iwC$$iwC$Person primitive1 = primitive9.new > Person(primitive3, primitive7); > /* 047 */ final boolean isNull0 = primitive1 == null; > /* 048 */ if (isNull0) { > /* 049 */ mutableRow.setNullAt(0); > /* 050 */ } else { > /* 051 */ > /* 052 */ mutableRow.update(0, primitive1); > /* 053 */ } > /* 054 */ > /* 055 */ return mutableRow; > /* 056 */ } > /* 057 */ } > /* 058 */ > org.codehaus.commons.compiler.CompileException: File 'generated.java', Line > 46, Column 67: No applicable constructor/method found for actual parameters > "java.lang.String, long"; candidates are: > "$line15.$read$$iwC$$iwC$Person(java.lang.String, int)" > at > org.codehaus.janino.UnitCompiler.compileError(UnitCompiler.java:10174) > at > org.codehaus.janino.UnitCompiler.findMostSpecificIInvocable(UnitCompiler.java:7559) > at > org.codehaus.janino.UnitCompiler.invokeConstructor(UnitCompiler.java:6505) > at org.codehaus.janino.UnitCompiler.compileGet2(UnitCompiler.java:4126) > at org.codehaus.janino.UnitCompiler.access$7600(UnitCompiler.java:185) > at > org.codehaus.janino.UnitCompiler$10.visitNewClassInstance(UnitCompiler.java:3275) > at org.codehaus.janino.Java$NewClassInstance.accept(Java.java:4085) > at org.codehaus.janino.UnitCompiler.compileGet(UnitCompiler.java:3290) > at > org.codehaus.janino.UnitCompiler.compileGetValue(UnitCompiler.java:4368) > at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:1845) > at org.codehaus.janino.UnitCompiler.access$2000(UnitCompiler.java:185) > at > org.codehaus.janino.UnitCompiler$4.visitLocalVariableDeclarationStatement(UnitCompiler.java:945) > at > org.codehaus.janino.Java$LocalVariableDeclarationStatement.accept(Java.java:2508) > at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:958) > at > org.codehaus.janino.UnitCompiler.compileStatements(UnitCompiler.java:1007) > at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:2293) > at > org.codehaus.janino.UnitCompiler.compileDeclaredMethods(UnitCompiler.java:822) > at > org.codehaus.janino.UnitCompiler.compileDeclaredMethods(UnitCompiler.java:794) > at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:507) > at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:658) > at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:662) > at org.codehaus.janino.UnitCompiler.access$600(UnitCompiler.java:185) > at > org.codehaus.janino.UnitCompiler$2.visitMemberClassDeclaration(UnitCompiler.java:350) > at > org.codehaus.janino.Java$MemberClassDeclaration.accept(Java.java:1035) > at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:354) > at > org.codehaus.janino.UnitCompiler.compileDeclaredMemberTypes(UnitCompiler.java:769) > at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:532) > at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:393) > at org.codehaus.janino.UnitCompiler.access$400(UnitCompiler.java:185) > at > org.codehaus.janino.UnitCompiler$2.visitPackageMemberClassDeclaration(UnitCompiler.java:347) > at > org.codehaus.janino.Java$PackageMemberClassDeclaration.accept(Java.java:1139) > at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:354) > at org.codehaus.janino.UnitCompiler.compileUnit(UnitCompiler.java:322) > at > org.codehaus.janino.SimpleCompiler.compileToClassLoader(SimpleCompiler.java:383) > at > org.codehaus.janino.ClassBodyEvaluator.compileToClass(ClassBodyEvaluator.java:315) > at > org.codehaus.janino.ClassBodyEvaluator.cook(ClassBodyEvaluator.java:233) > at org.codehaus.janino.SimpleCompiler.cook(SimpleCompiler.java:192) > at org.codehaus.commons.compiler.Cookable.cook(Cookable.java:84) > at > org.apache.spark.sql.catalyst.expressions.codegen.CodeGenerator.org$apache$spark$sql$catalyst$expressions$codegen$CodeGenerator$$doCompile(CodeGenerator.scala:566) > at > org.apache.spark.sql.catalyst.expressions.codegen.CodeGenerator$$anon$1.load(CodeGenerator.scala:591) > at > org.apache.spark.sql.catalyst.expressions.codegen.CodeGenerator$$anon$1.load(CodeGenerator.scala:588) > at > com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3599) > at > com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2379) > at > com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2342) > at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2257) > at com.google.common.cache.LocalCache.get(LocalCache.java:4000) > at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:4004) > at > com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4874) > at > org.apache.spark.sql.catalyst.expressions.codegen.CodeGenerator.compile(CodeGenerator.scala:531) > at > org.apache.spark.sql.catalyst.expressions.codegen.GenerateSafeProjection$.create(GenerateSafeProjection.scala:178) > at > org.apache.spark.sql.catalyst.expressions.codegen.GenerateSafeProjection$.create(GenerateSafeProjection.scala:30) > at > org.apache.spark.sql.catalyst.expressions.codegen.CodeGenerator.generate(CodeGenerator.scala:604) > at > org.apache.spark.sql.catalyst.encoders.ExpressionEncoder.constructProjection$lzycompute(ExpressionEncoder.scala:183) > at > org.apache.spark.sql.catalyst.encoders.ExpressionEncoder.constructProjection(ExpressionEncoder.scala:183) > at > org.apache.spark.sql.catalyst.encoders.ExpressionEncoder.fromRow(ExpressionEncoder.scala:205) > at > org.apache.spark.sql.Dataset$$anonfun$collect$2.apply(Dataset.scala:668) > at > org.apache.spark.sql.Dataset$$anonfun$collect$2.apply(Dataset.scala:668) > at > scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244) > at > scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244) > at > scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33) > at scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:108) > at scala.collection.TraversableLike$class.map(TraversableLike.scala:244) > at scala.collection.mutable.ArrayOps$ofRef.map(ArrayOps.scala:108) > at org.apache.spark.sql.Dataset.collect(Dataset.scala:668) > at > $line22.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC.<init>(<console>:32) > at $line22.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC.<init>(<console>:37) > at $line22.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC.<init>(<console>:39) > at $line22.$read$$iwC$$iwC$$iwC$$iwC$$iwC.<init>(<console>:41) > at $line22.$read$$iwC$$iwC$$iwC$$iwC.<init>(<console>:43) > at $line22.$read$$iwC$$iwC$$iwC.<init>(<console>:45) > at $line22.$read$$iwC$$iwC.<init>(<console>:47) > at $line22.$read$$iwC.<init>(<console>:49) > at $line22.$read.<init>(<console>:51) > at $line22.$read$.<init>(<console>:55) > at $line22.$read$.<clinit>(<console>) > at $line22.$eval$.<init>(<console>:7) > at $line22.$eval$.<clinit>(<console>) > at $line22.$eval.$print(<console>) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:606) > at > org.apache.spark.repl.SparkIMain$ReadEvalPrint.call(SparkIMain.scala:1065) > at > org.apache.spark.repl.SparkIMain$Request.loadAndRun(SparkIMain.scala:1346) > at > org.apache.spark.repl.SparkIMain.loadAndRunReq$1(SparkIMain.scala:840) > at org.apache.spark.repl.SparkIMain.interpret(SparkIMain.scala:871) > at org.apache.spark.repl.SparkIMain.interpret(SparkIMain.scala:819) > at > org.apache.spark.repl.SparkILoop.reallyInterpret$1(SparkILoop.scala:857) > at > org.apache.spark.repl.SparkILoop.interpretStartingWith(SparkILoop.scala:902) > at org.apache.spark.repl.SparkILoop.command(SparkILoop.scala:814) > at org.apache.spark.repl.SparkILoop.processLine$1(SparkILoop.scala:657) > at org.apache.spark.repl.SparkILoop.innerLoop$1(SparkILoop.scala:665) > at > org.apache.spark.repl.SparkILoop.org$apache$spark$repl$SparkILoop$$loop(SparkILoop.scala:670) > at > org.apache.spark.repl.SparkILoop$$anonfun$org$apache$spark$repl$SparkILoop$$process$1.apply$mcZ$sp(SparkILoop.scala:997) > at > org.apache.spark.repl.SparkILoop$$anonfun$org$apache$spark$repl$SparkILoop$$process$1.apply(SparkILoop.scala:945) > at > org.apache.spark.repl.SparkILoop$$anonfun$org$apache$spark$repl$SparkILoop$$process$1.apply(SparkILoop.scala:945) > at > scala.tools.nsc.util.ScalaClassLoader$.savingContextLoader(ScalaClassLoader.scala:135) > at > org.apache.spark.repl.SparkILoop.org$apache$spark$repl$SparkILoop$$process(SparkILoop.scala:945) > at org.apache.spark.repl.SparkILoop.process(SparkILoop.scala:1059) > at org.apache.spark.repl.Main$.main(Main.scala:31) > at org.apache.spark.repl.Main.main(Main.scala) > java.lang.RuntimeException: Error while decoding: > java.util.concurrent.ExecutionException: java.lang.Exception: failed to > compile: org.codehaus.commons.compiler.CompileException: File > 'generated.java', Line 46, Column 67: No applicable constructor/method found > for actual parameters "java.lang.String, long"; candidates are: > "$iwC$$iwC$Person(java.lang.String, int)" > /* 001 */ > /* 002 */ public java.lang.Object > generate(org.apache.spark.sql.catalyst.expressions.Expression[] expr) { > /* 003 */ return new SpecificSafeProjection(expr); > /* 004 */ } > /* 005 */ > /* 006 */ class SpecificSafeProjection extends > org.apache.spark.sql.catalyst.expressions.codegen.BaseProjection { > /* 007 */ > /* 008 */ private org.apache.spark.sql.catalyst.expressions.Expression[] > expressions; > /* 009 */ private org.apache.spark.sql.catalyst.expressions.MutableRow > mutableRow; > /* 010 */ > /* 011 */ > /* 012 */ > /* 013 */ public > SpecificSafeProjection(org.apache.spark.sql.catalyst.expressions.Expression[] > expr) { > /* 014 */ expressions = expr; > /* 015 */ mutableRow = new > org.apache.spark.sql.catalyst.expressions.GenericMutableRow(1); > /* 016 */ > /* 017 */ } > /* 018 */ > /* 019 */ public java.lang.Object apply(java.lang.Object _i) { > /* 020 */ InternalRow i = (InternalRow) _i; > /* 021 */ /* newinstance(class $iwC$$iwC$Person,invoke(input[1, > StringType],toString,ObjectType(class java.lang.String)),input[0, > LongType],false,ObjectType(class $iwC$$iwC$Person),Some($iwC$$iwC@62303b81)) > */ > /* 022 */ /* invoke(input[1, StringType],toString,ObjectType(class > java.lang.String)) */ > /* 023 */ /* input[1, StringType] */ > /* 024 */ boolean isNull4 = i.isNullAt(1); > /* 025 */ UTF8String primitive5 = isNull4 ? null : (i.getUTF8String(1)); > /* 026 */ > /* 027 */ > /* 028 */ boolean isNull2 = primitive5 == null; > /* 029 */ java.lang.String primitive3 = > /* 030 */ isNull2 ? > /* 031 */ null : (java.lang.String) primitive5.toString(); > /* 032 */ isNull2 = primitive3 == null; > /* 033 */ /* input[0, LongType] */ > /* 034 */ boolean isNull6 = i.isNullAt(0); > /* 035 */ long primitive7 = isNull6 ? -1L : (i.getLong(0)); > /* 036 */ /* $iwC$$iwC@62303b81 */ > /* 037 */ /* expression: $iwC$$iwC@62303b81 */ > /* 038 */ java.lang.Object obj10 = expressions[0].eval(i); > /* 039 */ boolean isNull8 = obj10 == null; > /* 040 */ $iwC$$iwC primitive9 = null; > /* 041 */ if (!isNull8) { > /* 042 */ primitive9 = ($iwC$$iwC) obj10; > /* 043 */ } > /* 044 */ > /* 045 */ > /* 046 */ $iwC$$iwC$Person primitive1 = primitive9.new Person(primitive3, > primitive7); > /* 047 */ final boolean isNull0 = primitive1 == null; > /* 048 */ if (isNull0) { > /* 049 */ mutableRow.setNullAt(0); > /* 050 */ } else { > /* 051 */ > /* 052 */ mutableRow.update(0, primitive1); > /* 053 */ } > /* 054 */ > /* 055 */ return mutableRow; > /* 056 */ } > /* 057 */ } > /* 058 */ > NewInstance class $iwC$$iwC$Person, false, ObjectType(class > $iwC$$iwC$Person), Some($iwC$$iwC@62303b81) > Invoke toString, ObjectType(class java.lang.String) > BoundReference 1, StringType, true > BoundReference 0, LongType, true > at > org.apache.spark.sql.catalyst.encoders.ExpressionEncoder.fromRow(ExpressionEncoder.scala:208) > at > org.apache.spark.sql.Dataset$$anonfun$collect$2.apply(Dataset.scala:668) > at > org.apache.spark.sql.Dataset$$anonfun$collect$2.apply(Dataset.scala:668) > at > scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244) > at > scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244) > at > scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33) > at scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:108) > at scala.collection.TraversableLike$class.map(TraversableLike.scala:244) > at scala.collection.mutable.ArrayOps$ofRef.map(ArrayOps.scala:108) > at org.apache.spark.sql.Dataset.collect(Dataset.scala:668) > at $iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC.<init>(<console>:32) > at $iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC.<init>(<console>:37) > at $iwC$$iwC$$iwC$$iwC$$iwC$$iwC.<init>(<console>:39) > at $iwC$$iwC$$iwC$$iwC$$iwC.<init>(<console>:41) > at $iwC$$iwC$$iwC$$iwC.<init>(<console>:43) > at $iwC$$iwC$$iwC.<init>(<console>:45) > at $iwC$$iwC.<init>(<console>:47) > at $iwC.<init>(<console>:49) > at <init>(<console>:51) > at .<init>(<console>:55) > at .<clinit>(<console>) > at .<init>(<console>:7) > at .<clinit>(<console>) > at $print(<console>) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:606) > at > org.apache.spark.repl.SparkIMain$ReadEvalPrint.call(SparkIMain.scala:1065) > at > org.apache.spark.repl.SparkIMain$Request.loadAndRun(SparkIMain.scala:1346) > at > org.apache.spark.repl.SparkIMain.loadAndRunReq$1(SparkIMain.scala:840) > at org.apache.spark.repl.SparkIMain.interpret(SparkIMain.scala:871) > at org.apache.spark.repl.SparkIMain.interpret(SparkIMain.scala:819) > at > org.apache.spark.repl.SparkILoop.reallyInterpret$1(SparkILoop.scala:857) > at > org.apache.spark.repl.SparkILoop.interpretStartingWith(SparkILoop.scala:902) > at org.apache.spark.repl.SparkILoop.command(SparkILoop.scala:814) > at org.apache.spark.repl.SparkILoop.processLine$1(SparkILoop.scala:657) > at org.apache.spark.repl.SparkILoop.innerLoop$1(SparkILoop.scala:665) > at > org.apache.spark.repl.SparkILoop.org$apache$spark$repl$SparkILoop$$loop(SparkILoop.scala:670) > at > org.apache.spark.repl.SparkILoop$$anonfun$org$apache$spark$repl$SparkILoop$$process$1.apply$mcZ$sp(SparkILoop.scala:997) > at > org.apache.spark.repl.SparkILoop$$anonfun$org$apache$spark$repl$SparkILoop$$process$1.apply(SparkILoop.scala:945) > at > org.apache.spark.repl.SparkILoop$$anonfun$org$apache$spark$repl$SparkILoop$$process$1.apply(SparkILoop.scala:945) > at > scala.tools.nsc.util.ScalaClassLoader$.savingContextLoader(ScalaClassLoader.scala:135) > at > org.apache.spark.repl.SparkILoop.org$apache$spark$repl$SparkILoop$$process(SparkILoop.scala:945) > at org.apache.spark.repl.SparkILoop.process(SparkILoop.scala:1059) > at org.apache.spark.repl.Main$.main(Main.scala:31) > at org.apache.spark.repl.Main.main(Main.scala) > Caused by: java.util.concurrent.ExecutionException: java.lang.Exception: > failed to compile: org.codehaus.commons.compiler.CompileException: File > 'generated.java', Line 46, Column 67: No applicable constructor/method found > for actual parameters "java.lang.String, long"; candidates are: > "$iwC$$iwC$Person(java.lang.String, int)" > /* 001 */ > /* 002 */ public java.lang.Object > generate(org.apache.spark.sql.catalyst.expressions.Expression[] expr) { > /* 003 */ return new SpecificSafeProjection(expr); > /* 004 */ } > /* 005 */ > /* 006 */ class SpecificSafeProjection extends > org.apache.spark.sql.catalyst.expressions.codegen.BaseProjection { > /* 007 */ > /* 008 */ private org.apache.spark.sql.catalyst.expressions.Expression[] > expressions; > /* 009 */ private org.apache.spark.sql.catalyst.expressions.MutableRow > mutableRow; > /* 010 */ > /* 011 */ > /* 012 */ > /* 013 */ public > SpecificSafeProjection(org.apache.spark.sql.catalyst.expressions.Expression[] > expr) { > /* 014 */ expressions = expr; > /* 015 */ mutableRow = new > org.apache.spark.sql.catalyst.expressions.GenericMutableRow(1); > /* 016 */ > /* 017 */ } > /* 018 */ > /* 019 */ public java.lang.Object apply(java.lang.Object _i) { > /* 020 */ InternalRow i = (InternalRow) _i; > /* 021 */ /* newinstance(class $iwC$$iwC$Person,invoke(input[1, > StringType],toString,ObjectType(class java.lang.String)),input[0, > LongType],false,ObjectType(class $iwC$$iwC$Person),Some($iwC$$iwC@62303b81)) > */ > /* 022 */ /* invoke(input[1, StringType],toString,ObjectType(class > java.lang.String)) */ > /* 023 */ /* input[1, StringType] */ > /* 024 */ boolean isNull4 = i.isNullAt(1); > /* 025 */ UTF8String primitive5 = isNull4 ? null : (i.getUTF8String(1)); > /* 026 */ > /* 027 */ > /* 028 */ boolean isNull2 = primitive5 == null; > /* 029 */ java.lang.String primitive3 = > /* 030 */ isNull2 ? > /* 031 */ null : (java.lang.String) primitive5.toString(); > /* 032 */ isNull2 = primitive3 == null; > /* 033 */ /* input[0, LongType] */ > /* 034 */ boolean isNull6 = i.isNullAt(0); > /* 035 */ long primitive7 = isNull6 ? -1L : (i.getLong(0)); > /* 036 */ /* $iwC$$iwC@62303b81 */ > /* 037 */ /* expression: $iwC$$iwC@62303b81 */ > /* 038 */ java.lang.Object obj10 = expressions[0].eval(i); > /* 039 */ boolean isNull8 = obj10 == null; > /* 040 */ $iwC$$iwC primitive9 = null; > /* 041 */ if (!isNull8) { > /* 042 */ primitive9 = ($iwC$$iwC) obj10; > /* 043 */ } > /* 044 */ > /* 045 */ > /* 046 */ $iwC$$iwC$Person primitive1 = primitive9.new Person(primitive3, > primitive7); > /* 047 */ final boolean isNull0 = primitive1 == null; > /* 048 */ if (isNull0) { > /* 049 */ mutableRow.setNullAt(0); > /* 050 */ } else { > /* 051 */ > /* 052 */ mutableRow.update(0, primitive1); > /* 053 */ } > /* 054 */ > /* 055 */ return mutableRow; > /* 056 */ } > /* 057 */ } > /* 058 */ > at > com.google.common.util.concurrent.AbstractFuture$Sync.getValue(AbstractFuture.java:306) > at > com.google.common.util.concurrent.AbstractFuture$Sync.get(AbstractFuture.java:293) > at > com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:116) > at > com.google.common.util.concurrent.Uninterruptibles.getUninterruptibly(Uninterruptibles.java:135) > at > com.google.common.cache.LocalCache$Segment.getAndRecordStats(LocalCache.java:2410) > at > com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2380) > at > com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2342) > at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2257) > at com.google.common.cache.LocalCache.get(LocalCache.java:4000) > at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:4004) > at > com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4874) > at > org.apache.spark.sql.catalyst.expressions.codegen.CodeGenerator.compile(CodeGenerator.scala:531) > at > org.apache.spark.sql.catalyst.expressions.codegen.GenerateSafeProjection$.create(GenerateSafeProjection.scala:178) > at > org.apache.spark.sql.catalyst.expressions.codegen.GenerateSafeProjection$.create(GenerateSafeProjection.scala:30) > at > org.apache.spark.sql.catalyst.expressions.codegen.CodeGenerator.generate(CodeGenerator.scala:604) > at > org.apache.spark.sql.catalyst.encoders.ExpressionEncoder.constructProjection$lzycompute(ExpressionEncoder.scala:183) > at > org.apache.spark.sql.catalyst.encoders.ExpressionEncoder.constructProjection(ExpressionEncoder.scala:183) > at > org.apache.spark.sql.catalyst.encoders.ExpressionEncoder.fromRow(ExpressionEncoder.scala:205) > ... 46 more > Caused by: java.lang.Exception: failed to compile: > org.codehaus.commons.compiler.CompileException: File 'generated.java', Line > 46, Column 67: No applicable constructor/method found for actual parameters > "java.lang.String, long"; candidates are: "$iwC$$iwC$Person(java.lang.String, > int)" > /* 001 */ > /* 002 */ public java.lang.Object > generate(org.apache.spark.sql.catalyst.expressions.Expression[] expr) { > /* 003 */ return new SpecificSafeProjection(expr); > /* 004 */ } > /* 005 */ > /* 006 */ class SpecificSafeProjection extends > org.apache.spark.sql.catalyst.expressions.codegen.BaseProjection { > /* 007 */ > /* 008 */ private org.apache.spark.sql.catalyst.expressions.Expression[] > expressions; > /* 009 */ private org.apache.spark.sql.catalyst.expressions.MutableRow > mutableRow; > /* 010 */ > /* 011 */ > /* 012 */ > /* 013 */ public > SpecificSafeProjection(org.apache.spark.sql.catalyst.expressions.Expression[] > expr) { > /* 014 */ expressions = expr; > /* 015 */ mutableRow = new > org.apache.spark.sql.catalyst.expressions.GenericMutableRow(1); > /* 016 */ > /* 017 */ } > /* 018 */ > /* 019 */ public java.lang.Object apply(java.lang.Object _i) { > /* 020 */ InternalRow i = (InternalRow) _i; > /* 021 */ /* newinstance(class $iwC$$iwC$Person,invoke(input[1, > StringType],toString,ObjectType(class java.lang.String)),input[0, > LongType],false,ObjectType(class $iwC$$iwC$Person),Some($iwC$$iwC@62303b81)) > */ > /* 022 */ /* invoke(input[1, StringType],toString,ObjectType(class > java.lang.String)) */ > /* 023 */ /* input[1, StringType] */ > /* 024 */ boolean isNull4 = i.isNullAt(1); > /* 025 */ UTF8String primitive5 = isNull4 ? null : (i.getUTF8String(1)); > /* 026 */ > /* 027 */ > /* 028 */ boolean isNull2 = primitive5 == null; > /* 029 */ java.lang.String primitive3 = > /* 030 */ isNull2 ? > /* 031 */ null : (java.lang.String) primitive5.toString(); > /* 032 */ isNull2 = primitive3 == null; > /* 033 */ /* input[0, LongType] */ > /* 034 */ boolean isNull6 = i.isNullAt(0); > /* 035 */ long primitive7 = isNull6 ? -1L : (i.getLong(0)); > /* 036 */ /* $iwC$$iwC@62303b81 */ > /* 037 */ /* expression: $iwC$$iwC@62303b81 */ > /* 038 */ java.lang.Object obj10 = expressions[0].eval(i); > /* 039 */ boolean isNull8 = obj10 == null; > /* 040 */ $iwC$$iwC primitive9 = null; > /* 041 */ if (!isNull8) { > /* 042 */ primitive9 = ($iwC$$iwC) obj10; > /* 043 */ } > /* 044 */ > /* 045 */ > /* 046 */ $iwC$$iwC$Person primitive1 = primitive9.new Person(primitive3, > primitive7); > /* 047 */ final boolean isNull0 = primitive1 == null; > /* 048 */ if (isNull0) { > /* 049 */ mutableRow.setNullAt(0); > /* 050 */ } else { > /* 051 */ > /* 052 */ mutableRow.update(0, primitive1); > /* 053 */ } > /* 054 */ > /* 055 */ return mutableRow; > /* 056 */ } > /* 057 */ } > /* 058 */ > at > org.apache.spark.sql.catalyst.expressions.codegen.CodeGenerator.org$apache$spark$sql$catalyst$expressions$codegen$CodeGenerator$$doCompile(CodeGenerator.scala:571) > at > org.apache.spark.sql.catalyst.expressions.codegen.CodeGenerator$$anon$1.load(CodeGenerator.scala:591) > at > org.apache.spark.sql.catalyst.expressions.codegen.CodeGenerator$$anon$1.load(CodeGenerator.scala:588) > at > com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3599) > at > com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2379) > ... 58 more > Caused by: org.codehaus.commons.compiler.CompileException: File > 'generated.java', Line 46, Column 67: No applicable constructor/method found > for actual parameters "java.lang.String, long"; candidates are: > "$iwC$$iwC$Person(java.lang.String, int)" > at > org.codehaus.janino.UnitCompiler.compileError(UnitCompiler.java:10174) > at > org.codehaus.janino.UnitCompiler.findMostSpecificIInvocable(UnitCompiler.java:7559) > at > org.codehaus.janino.UnitCompiler.invokeConstructor(UnitCompiler.java:6505) > at org.codehaus.janino.UnitCompiler.compileGet2(UnitCompiler.java:4126) > at org.codehaus.janino.UnitCompiler.access$7600(UnitCompiler.java:185) > at > org.codehaus.janino.UnitCompiler$10.visitNewClassInstance(UnitCompiler.java:3275) > at org.codehaus.janino.Java$NewClassInstance.accept(Java.java:4085) > at org.codehaus.janino.UnitCompiler.compileGet(UnitCompiler.java:3290) > at > org.codehaus.janino.UnitCompiler.compileGetValue(UnitCompiler.java:4368) > at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:1845) > at org.codehaus.janino.UnitCompiler.access$2000(UnitCompiler.java:185) > at > org.codehaus.janino.UnitCompiler$4.visitLocalVariableDeclarationStatement(UnitCompiler.java:945) > at > org.codehaus.janino.Java$LocalVariableDeclarationStatement.accept(Java.java:2508) > at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:958) > at > org.codehaus.janino.UnitCompiler.compileStatements(UnitCompiler.java:1007) > at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:2293) > at > org.codehaus.janino.UnitCompiler.compileDeclaredMethods(UnitCompiler.java:822) > at > org.codehaus.janino.UnitCompiler.compileDeclaredMethods(UnitCompiler.java:794) > at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:507) > at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:658) > at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:662) > at org.codehaus.janino.UnitCompiler.access$600(UnitCompiler.java:185) > at > org.codehaus.janino.UnitCompiler$2.visitMemberClassDeclaration(UnitCompiler.java:350) > at > org.codehaus.janino.Java$MemberClassDeclaration.accept(Java.java:1035) > at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:354) > at > org.codehaus.janino.UnitCompiler.compileDeclaredMemberTypes(UnitCompiler.java:769) > at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:532) > at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:393) > at org.codehaus.janino.UnitCompiler.access$400(UnitCompiler.java:185) > at > org.codehaus.janino.UnitCompiler$2.visitPackageMemberClassDeclaration(UnitCompiler.java:347) > at > org.codehaus.janino.Java$PackageMemberClassDeclaration.accept(Java.java:1139) > at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:354) > at org.codehaus.janino.UnitCompiler.compileUnit(UnitCompiler.java:322) > at > org.codehaus.janino.SimpleCompiler.compileToClassLoader(SimpleCompiler.java:383) > at > org.codehaus.janino.ClassBodyEvaluator.compileToClass(ClassBodyEvaluator.java:315) > at > org.codehaus.janino.ClassBodyEvaluator.cook(ClassBodyEvaluator.java:233) > at org.codehaus.janino.SimpleCompiler.cook(SimpleCompiler.java:192) > at org.codehaus.commons.compiler.Cookable.cook(Cookable.java:84) > at > org.apache.spark.sql.catalyst.expressions.codegen.CodeGenerator.org$apache$spark$sql$catalyst$expressions$codegen$CodeGenerator$$doCompile(CodeGenerator.scala:566) > ... 62 more > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332) --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org For additional commands, e-mail: issues-h...@spark.apache.org