Re: EdgeId and RelationId using VertexWritable

HadoopMarc <bi...@...>

Ok, the form [1zf-388-b2t-368][4184-lives->4112] derives from:

return E + L_BRACKET + + R_BRACKET + L_BRACKET + edge.outVertex().id() + DASH + edge.label() + ARROW + edge.inVertex().id() + R_BRACKET;

You can also check in the console:

gremlin> import org.janusgraph.util.encoding.LongEncoding
gremlin> LongEncoding.encode(2571L)
gremlin> LongEncoding.encode(4184L)
gremlin> LongEncoding.encode(4112L)

I guess you have to typecast the result to the JanusGraph RelationIdentifier somehow to get the canonical form you want. My scala is a bit rusty, so I leave that to you.

Btw, it can hardly be a coincidence that someone else had the same problem in a current thread!


Op dinsdag 25 augustus 2020 om 12:50:44 UTC+2 schreef ra...@...:

Hi Everyone,

I am using the VertexWritable class of Janusgraph to fetch the data via Spark as below:
val rdd0: RDD[(NullWritable, VertexWritable)] = spark.sparkContext.newAPIHadoopRDD(hadoopConfiguration, classOf[CqlInputFormat], classOf[NullWritable], classOf[VertexWritable])

val rdd1: RDD[VertexWritable] = { case (x, y) => y.asInstanceOf[VertexWritable] }

When I use => x.edges(Direction.IN)), I get the tinkerpop Edge and the returns the relation ID (e[2571][4184-lives->4112]). How do I get the edge Id ==>e[1zf-388-b2t-368][4184-lives->4112]?

Join to automatically receive all group messages.