我遇到将图形数据导入数据库的情况。我正在使用Docker的cassandra(版本3)和elasticsearch(版本6.6.0)运行janusgraph(最新版本),建议使用gryo格式。所以我尝试了这个命令
graph.io(IoCore.gryo()).reader().create().readGraph(ToInputStream.from("my_graph.kryo"), graph);
但最终出现错误
No such property: ToInputStream for class: Script4
我关注的文档是here。请查看一下,然后进行正确的设置。提前致谢!
最佳答案
ToInputStream
不是Gremlin或JanusGraph的函数。我相信这只是IBM Compose的功能,因此,除非您在该特定平台上运行JanusGraph,否则此命令将不起作用。
使用TinkerPop 3.4.x的JanusGraph版本将支持 io()
step,这是加载gryo(以及graphson和graphml)文件的首选方式。
Graph graph = ... // setup JanusGraph instance
GraphTraversalSource g = traversal().withGraph(graph); // might use withRemote() here instead depending on how you are connecting I suppose
g.io("graph.kryo").read().iterate()
请注意,如果您是远程连接-似乎由于错误而正在将脚本发送到Docker实例-那么请确保Docker可以访问“graph.kryo”文件路径。这就是Compose的
ToInputStream
的优点,因为它允许您访问远程源。