Java DSE GraphFrame API不完全支持从GraphTraversal
到DataFrame
。
以下GraphTraversal
到DataFrame
是可能的:
gf().E().df()
然而,这不是:
gf().E().hasLabel("foo").df()
这是因为hasLabel()
返回GraphTraversal
而不是com.datastax.bdp.graph.spark.graphframe.DseGraphTraversal
而GraphTraversal
没有df()
方法。
这应该可以按docs
进行完成遍历并返回DataFrame API而不是list 或迭代器使用.df()方法:
graph.V()。DF()
我正在使用dse-graph-frames:5.1.4
和dse-byos_2.11:5.1.4
。
这是预期的吗?我真正想要的是进行一些图遍历并将其转换为DataFrame。
答案 0 :(得分:4)
它在Scala中工作,在Java中你需要将强制转换添加到DseGraphTraversal
((DseGraphTraversal)gf.E().hasLabel("foo")).df()
我在这里给出了更长的答案Iterating a GraphTraversal with GraphFrame causes UnsupportedOperationException Row to Vertex conversion