[
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: [email protected]
For additional commands, e-mail: [email protected]