मैं एक दूरस्थ सर्वर में जानूसग्राफ का उपयोग कर रहा हूं, जिसके माध्यम से मैं एक अजगर दूरस्थ क्लाइंट से जुड़ता हूं

from gremlin_python import statics
from gremlin_python.structure.graph import Graph
from gremlin_python.process.graph_traversal import __
from gremlin_python.driver.driver_remote_connection import DriverRemoteConnection
graph = Graph()
connection = DriverRemoteConnection('ws://localhost:8182/gremlin', 'g')
g = graph.traversal().withRemote(connection)

लेकिन जब मैं ग्राफ़ को ग्राफ़एमएल फ़ाइल में निर्यात करने का प्रयास करता हूं

g.io("graph.xml").write().iterate()

यह स्थानीय क्लाइंट के बजाय दूरस्थ सर्वर में सहेजा जाता है।

क्या ग्राफ़एमएल फ़ाइल को स्थानीय रूप से सहेजने का कोई तरीका है? अग्रिम में धन्यवाद!!!

0
cabo 18 फरवरी 2021, 23:58

1 उत्तर

सबसे बढ़िया उत्तर

मुझे डर है कि आप इस बिंदु पर केवल स्क्रिप्ट आधारित अनुरोध के साथ ही ऐसा कर सकते हैं। आप मूल रूप से एक स्क्रिप्ट भेजेंगे जो ग्राफ़ को ग्राफ़एमएल की एक स्ट्रिंग में लिखती है और इसे आपके परिणाम के रूप में वापस कर देती है। यह दृष्टिकोण केवल तभी काम करेगा जब आपका सर्वर ग्रूवी-आधारित स्क्रिप्ट का समर्थन करता है। आप इस संरचना के साथ एक स्क्रिप्ट भेजेंगे (आपके मामले में आप निश्चित रूप से graph का उपयोग करेंगे जिसे आपने सर्वर पर परिभाषित किया है):

gremlin> graph = TinkerFactory.createModern()
==>tinkergraph[vertices:6 edges:6]
gremlin> writer = GraphMLWriter.build().create()
==>org.apache.tinkerpop.gremlin.structure.io.graphml.GraphMLWriter@7baf1f5a
gremlin> stream = new ByteArrayOutputStream()
==>
gremlin> writer.writeGraph(stream, graph)
==>null
gremlin> new String(stream.toByteArray())
==><?xml version="1.0" ?><graphml xmlns="http://graphml.graphdrawing.org/xmlns" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns http://graphml.graphdrawing.org/xmlns/1.1/graphml.xsd"><key id="labelV" for="node" attr.name="labelV" attr.type="string"></key><key id="name" for="node" attr.name="name" attr.type="string"></key><key id="lang" for="node" attr.name="lang" attr.type="string"></key><key id="age" for="node" attr.name="age" attr.type="int"></key><key id="labelE" for="edge" attr.name="labelE" attr.type="string"></key><key id="weight" for="edge" attr.name="weight" attr.type="double"></key><graph id="G" edgedefault="directed"><node id="1"><data key="labelV">person</data><data key="name">marko</data><data key="age">29</data></node><node id="2"><data key="labelV">person</data><data key="name">vadas</data><data key="age">27</data></node><node id="3"><data key="labelV">software</data><data key="name">lop</data><data key="lang">java</data></node><node id="4"><data key="labelV">person</data><data key="name">josh</data><data key="age">32</data></node><node id="5"><data key="labelV">software</data><data key="name">ripple</data><data key="lang">java</data></node><node id="6"><data key="labelV">person</data><data key="name">peter</data><data key="age">35</data></node><edge id="7" source="1" target="2"><data key="labelE">knows</data><data key="weight">0.5</data></edge><edge id="8" source="1" target="4"><data key="labelE">knows</data><data key="weight">1.0</data></edge><edge id="9" source="1" target="3"><data key="labelE">created</data><data key="weight">0.4</data></edge><edge id="10" source="4" target="5"><data key="labelE">created</data><data key="weight">1.0</data></edge><edge id="11" source="4" target="3"><data key="labelE">created</data><data key="weight">0.4</data></edge><edge id="12" source="6" target="3"><data key="labelE">created</data><data key="weight">0.2</data></edge></graph></graphml>

फिर आपको पाइथन में ग्राफ़एमएल की एक स्ट्रिंग वापस मिल जाएगी जिसे आप आवश्यकतानुसार संसाधित कर सकते हैं।

1
stephen mallette 22 फरवरी 2021, 13:20