The Java DSE GraphFrame API does not fully support going from GraphTraversal
to DataFrame
.
The following GraphTraversal
to DataFrame
is possible:
gf().E().df()
However this does not:
gf().E().hasLabel("foo").df()
This is because hasLabel()
returns a GraphTraversal
instead of com.datastax.bdp.graph.spark.graphframe.DseGraphTraversal
and GraphTraversal
does not have the df()
method.
This should be possible per the docs
To finish a traversal and return to the DataFrame API instead of list or iterator use the .df() method:
graph.V().df()
I'm using dse-graph-frames:5.1.4
along with dse-byos_2.11:5.1.4
.
Is this expected? All I really want is to do some graph traversal and convert it into a DataFrame.
It works in Scala as is, in Java you need to add the cast to DseGraphTraversal
((DseGraphTraversal)gf.E().hasLabel("foo")).df()
I gave a longer answer here Iterating a GraphTraversal with GraphFrame causes UnsupportedOperationException Row to Vertex conversion