Hi,
I am trying to do a filter query in OLAP (Spark) Gremlin which uses a filter where I'm trying to read a vertex property and getting an error. On the Grateful Dead example graph, I'm trying to filter song vertices such that songs are kept which are not covers or are not sung by Garcia or Weir. I've written the query like this:
gremlin> g.V().hasLabel('song').filter(has('songType',without('cover')).or().match(
__.as('songV').out('sungBy').as('sungV'),
__.as('sungV').values('name').as('artistName')).
select('artistName').where(without('Garcia','Weir')))
I use the match statement to allow traversals beyond the local star graph. And I get the exception (full stack trace is below) java.lang.UnsupportedOperationException: The properties of an adjacent vertex can not be read or updated.
-Jen
Stack trace:
java.lang.UnsupportedOperationException: The properties of an adjacent vertex can not be read or updated
at org.apache.tinkerpop.gremlin.process.computer.GraphComputer$Exceptions.adjacentVertexPropertiesCanNotBeReadOrUpdated(GraphComputer.java:202)
at org.apache.tinkerpop.gremlin.process.computer.util.ComputerGraph$ComputerAdjacentVertex.properties(ComputerGraph.java:471)
at org.apache.tinkerpop.gremlin.structure.Element.values(Element.java:107)
at org.apache.tinkerpop.gremlin.process.traversal.step.map.PropertiesStep.flatMap(PropertiesStep.java:50)
at org.apache.tinkerpop.gremlin.process.traversal.step.map.FlatMapStep.processNextStart(FlatMapStep.java:47)
at org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.hasNext(AbstractStep.java:140)
at org.apache.tinkerpop.gremlin.process.traversal.step.util.ExpandableStepIterator.next(ExpandableStepIterator.java:54)
at org.apache.tinkerpop.gremlin.process.traversal.step.map.MatchStep$MatchEndStep.processNextStart(MatchStep.java:460)
at org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.hasNext(AbstractStep.java:140)
at org.apache.tinkerpop.gremlin.process.traversal.util.DefaultTraversal.hasNext(DefaultTraversal.java:147)
at org.apache.tinkerpop.gremlin.process.traversal.step.map.MatchStep.standardAlgorithm(MatchStep.java:313)
at org.apache.tinkerpop.gremlin.process.traversal.step.util.ComputerAwareStep.processNextStart(ComputerAwareStep.java:47)
at org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.hasNext(AbstractStep.java:140)
at org.apache.tinkerpop.gremlin.process.traversal.step.util.ExpandableStepIterator.next(ExpandableStepIterator.java:54)
at org.apache.tinkerpop.gremlin.process.traversal.step.map.MapStep.processNextStart(MapStep.java:36)
at org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.hasNext(AbstractStep.java:140)
at org.apache.tinkerpop.gremlin.process.traversal.util.DefaultTraversal.hasNext(DefaultTraversal.java:147)
at org.apache.tinkerpop.gremlin.process.traversal.util.TraversalUtil.test(TraversalUtil.java:84)
at org.apache.tinkerpop.gremlin.process.traversal.step.filter.OrStep.processNextStart(OrStep.java:41)
at org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.hasNext(AbstractStep.java:140)
at org.apache.tinkerpop.gremlin.process.traversal.util.DefaultTraversal.hasNext(DefaultTraversal.java:147)
at org.apache.tinkerpop.gremlin.process.traversal.util.TraversalUtil.test(TraversalUtil.java:84)
at org.apache.tinkerpop.gremlin.process.traversal.step.filter.TraversalFilterStep.filter(TraversalFilterStep.java:46)
at org.apache.tinkerpop.gremlin.process.traversal.step.filter.FilterStep.processNextStart(FilterStep.java:38)
at org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.hasNext(AbstractStep.java:140)
at java.util.Iterator.forEachRemaining(Iterator.java:115)
at org.apache.tinkerpop.gremlin.process.computer.traversal.TraverserExecutor.lambda$execute$337(TraverserExecutor.java:83)
at java.lang.Iterable.forEach(Iterable.java:75)
at org.apache.tinkerpop.gremlin.process.computer.traversal.TraverserExecutor.execute(TraverserExecutor.java:80)
at org.apache.tinkerpop.gremlin.process.computer.traversal.TraversalVertexProgram.execute(TraversalVertexProgram.java:166)
at org.apache.tinkerpop.gremlin.spark.process.computer.SparkExecutor.lambda$null$17(SparkExecutor.java:92)
at org.apache.tinkerpop.gremlin.util.iterator.IteratorUtils$3.next(IteratorUtils.java:232)
at scala.collection.convert.Wrappers$JIteratorWrapper.next(Wrappers.scala:42)
at scala.collection.Iterator$$anon$13.hasNext(Iterator.scala:371)
at org.apache.spark.util.collection.ExternalSorter.insertAll(ExternalSorter.scala:209)
at org.apache.spark.shuffle.sort.SortShuffleWriter.write(SortShuffleWriter.scala:73)
at org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:73)
at org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:41)
at org.apache.spark.scheduler.Task.run(Task.scala:88)
at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:214)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)