morpheus icon indicating copy to clipboard operation
morpheus copied to clipboard

Malformed class name error using Zeppelin 0.8.0 and CAPS

Open nasheqlbrm opened this issue 5 years ago • 13 comments

I am running into a Malformed class name error when trying to run a simple CAPS example locally (see screenshot below). I am on a mac and using the Zeppelin 0.8 binary downloaded from the Zeppelin website.

I would appreciate any help or pointers.

Thanks!

cap

nasheqlbrm avatar Nov 09 '18 23:11 nasheqlbrm

Hi @nasheqlbrm may I suggest to use this Docker environment? I prepared it for a session that I held during this Graph Connect

conker84 avatar Nov 11 '18 17:11 conker84

Thanks for the reply and the docker environment @conker84! I will give it a try.

The main reason I was trying to figure this out locally was so I could turn around and apply it in setting up a large-ish AWS EMR cluster. It's easier to prototype on AWS than on my laptop for larger graphs. Aside from trying to use the pre-compiled zeppelin binary I have also also tried to compile zeppelin 0.8 from source with spark 2.2 and scala 2.11.11 (based on the discussion in #196) but was unable to hit upon the right incantations to get zeppelin to use scala 2.11.11.

I am not very familiar with docker but it's possible the steps you followed to set that environment up could provide some clues for where I was going wrong? Let me know what you think.

nasheqlbrm avatar Nov 12 '18 14:11 nasheqlbrm

Are you using the internal spark package? In case so, Can I suggest to use an external package as I did here?

conker84 avatar Nov 12 '18 18:11 conker84

Thanks for the suggestion. I downloaded spark-2.3.1-bin-hadoop2.7 and pointed my SPARK_HOME to it. So while I am still using the Zeppelin 0.8 binary downloaded from the Zeppelin website the spark package being used will be the external package. However no luck :(

Now in addition to the Malformed class name, I get another error: object ZeppelinSuport is not a member of package org.opencypher.okapi.api.util (screenshot below):

cypher

nasheqlbrm avatar Nov 12 '18 21:11 nasheqlbrm

@nasheqlbrm can you try with the current CAPS snapshot? I tried with it and I don't have your problem

conker84 avatar Nov 14 '18 09:11 conker84

@conker84 Apologies if this is obvious but by current snapshot you mean that I should build CAPS locally according to current state of the Master branch and refer to the output jar ?

nasheqlbrm avatar Nov 14 '18 11:11 nasheqlbrm

Yes!

conker84 avatar Nov 14 '18 15:11 conker84

Hej @nasheqlbrm, we have released a new patch release 0.2.1 of CAPS which should almost reflect the current master state. Could you try updating to that version? It also includes a couple of improvements for Zeppelin. Best Max

DarthMax avatar Nov 15 '18 13:11 DarthMax

Also please note that CAPS is only guaranteed to work with Spark 2.2.x at this point.

Mats-SX avatar Nov 15 '18 16:11 Mats-SX

Thanks for the suggestions @DarthMax @Mats-SX

No luck, I get the same Malformed class name error. I downloaded a fresh version of zeppelin-0.8.0-bin-all locally (in case I had messed up my local zeppelin somehow). After that I pointed CAPS to 0.2.1 in my test notebook as below (is this correct or should I have been trying to use spark-cypher-0.2.1-cluster.jar?) %spark.dep z.load("org.opencypher:spark-cypher:0.2.1")

I tried this with a) the version of Spark that is bundled with Zeppelin namely version 2.2.0 and b) by pointing SPARK_HOME to spark-2.2.1-bin-hadoop2.7 with no change in the outcome.

Let me know if there is any information I could provide that would help us triangulate the issue.

nasheqlbrm avatar Nov 15 '18 19:11 nasheqlbrm

Could you try z.load("org.opencypher:spark-cypher:jar:cluster:0.2.1")?

Mats-SX avatar Nov 16 '18 09:11 Mats-SX

Sure, I tried using

%spark.dep
z.load("org.opencypher:spark-cypher:jar:cluster:0.2.1")

but ended up getting the same error as before.

nasheqlbrm avatar Nov 16 '18 15:11 nasheqlbrm

I also get the same issue, with or without 0.2.1 dep. Output is:

import org.opencypher.spark.api.CAPSSession
import org.opencypher.spark.api.io.{Node, Relationship, RelationshipType}
defined object SocialNetworkData
defined object CaseClassExample
session: org.opencypher.spark.api.CAPSSession = CAPSSession
java.lang.InternalError: Malformed class name
  at java.lang.Class.getSimpleName(Class.java:1330)
  at java.lang.Class.getCanonicalName(Class.java:1399)
  at org.opencypher.spark.impl.util.Annotation$.staticClass(Annotation.scala:68)
  at org.opencypher.spark.impl.util.Annotation$.get(Annotation.scala:51)
  at org.opencypher.spark.impl.util.Annotation$.labels(Annotation.scala:37)
  at org.opencypher.spark.api.io.CAPSNodeTable$.apply(CAPSTable.scala:63)
  at org.opencypher.spark.api.CAPSSession.readFrom(CAPSSession.scala:79)
  ... 52 elided

mpharding avatar Nov 20 '18 16:11 mpharding