Невозможно запустить запрос шифра для neo4j на python
Пытался запустить запрос базы данных neo4j, используя python. Код работает для самых простых запросов, но не для всех. Я не получаю никаких исключений, и не понимаю причину, по которой идут файлы журналов.
Мой код выглядит так...
from neo4j.v1 import GraphDatabase, basic_auth
graph_url = "bolt://localhost:7687"
graph_username = "neo4j"
graph_password = "neo4j"
driver =GraphDatabase.driver(graph_url, auth=basic_auth(graph_username, graph_password))
session = driver.session()
query_simple="Create (enitity:n{name : 'john doe'})"
session.run(query_simple)
query = "LOAD CSV WITH HEADERS FROM 'http://data.neo4j.com/northwind/products.csv' AS row CREATE (n:Product) SET n = row n.unitPrice = toFloat(row.unitPrice), n.unitsInStock = toInt(row.unitsInStock), n.unitsOnOrder = toInt(row.unitsOnOrder), n.reorderLevel = toInt(row.reorderLevel), n.discontinued = (row.discontinued <> '0')"
session.run(query)
простой запрос работает нормально, но другой запрос не выполняется. Это пример запроса, который работает на графическом интерфейсе neo4j на моем локальном хосте.
в файлах журнала отладки я получаю эти два вида журналов ошибок:
2016-07-06 22: 14: 27.062 + 0000 ОШИБКА [onbvtBoltProtocolV1] Не удалось записать ответ в драйвер
java.lang.NullPointerException в org.neo4j.bolt.v1.transport.ChunkedOutput.ensure(ChunkedOutput.java:156) в org.neo4j.bolt.v1.transport.ChunkedOutput.writeShort(ChunkedOutputj org).neo4j.bolt.v1.packstream.PackStream$Packer.packStructHeader(PackStream.java:304) в org.neo4j.bolt.v1.messaging.PackStreamMessageFormatV1$Writer.handleFailureMessage(PackStreamMessageFormatV1.jb.4. at.v1.messaging.msgprocess.MessageProcessingCallback.publishError(MessageProcessingCallback.java:48) в org.neo4j.bolt.v1.messaging.msgprocess.MessageProcessingCallback.completed(MessageProcessingCallback.java:98) в org.o.msgprocess.MessageProcessingCallback.completed(MessageProcessingCallback.java:31) в org.neo4j.bolt.v1.runtime.internal.SessionStateMachine.after(SessionStateMachine.java:823) в org.neo4j.bolt.vternal.Sun.time. выполнить (SessionStateMachine.java:655) в org.neo4j.bolt.v1.runtime.internal.concurrent.SessionWorkerFacade.lambda$run$3(SessionWorkerFacade.java:68) в org.neo4j.bolt.v1.runtime.internal.concurrent.SessionWorker.execute(SessionWorker.java:116) в org.neo4j.bolt.v1.runtime.internal.concurrent.Session.run(SessionWorker.java:77) в java.lang.Thread.run(Thread.java:745)
а также
2016-07-06 20:52:20.588+0000 ОШИБКА [onbtSocketTransportHandler] Неустранимая ошибка при обработке клиентского подключения: сброс подключения по одноранговому узлу Сброс подключения по одноранговому узлу java.io.IOException: сброс подключения по одноранговому узлу на sun.nio.ch.FileDispatcherImpl.read0(собственный метод) в sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39) в sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223) в sun.nio.ch.IOUtil. читать (IOUtil.java:192) по адресу sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380) по адресу io.netty.buffer.PooledUnsafeDirectByteBuf.setBytes(PooledUnsafeDirectByteBuf.bub.bub.jb)..writeBytes(AbstractByteBuf.java:881) по адресу io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:242) по адресу io.netty.channel.nio.AbstractNioByteChannel$NioByteNyNyByte) в io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:511) в io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:468) на io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:382) на io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:354) на io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:111) в java.lang.Thread.run(Thread.java:745)
Я использую версию сообщества neo4j в моей системе, Python версии 3.5
Заранее спасибо:)
1 ответ
Вы заметили раздел ниже в файле conf/neo4j.conf
?
# Determines if Cypher will allow using file URLs when loading data using
# `LOAD CSV`. Setting this value to `false` will cause Neo4j to fail `LOAD CSV`
# clauses that load data from the file system.
#dbms.security.allow_csv_import_from_file_urls=true
Тем не менее (после комментария к строке выше и перезапуска neo4j) вы можете получить еще одну ошибку, связанную с тем, что объясняется по адресу: https://neo4j.com/developer/kb/explanation-of-error-load-csv-error-of-couldnt-load-the-external-resource/
Вы также можете попробовать загрузить файл csv и сохранить его в import
каталог, а затем используйте:
LOAD CSV WITH HEADERS FROM 'file:///products.csv' AS row ...