Neo4j CSV加载-将字符串更改为时间戳

Neo4j CSV加载-将字符串更改为时间戳,neo4j,cypher,Neo4j,Cypher,我需要定期将大型csv文件加载到neo4j中(每个文件有260万条记录)。我可以通过打开文件并逐行解析来实现这一点,这允许对记录进行操作,但性能相当差,因此我更喜欢使用neo4j提供的csv加载程序 在数据记录中,有类似“2016-12-13T08:07:03+01”格式的时间值。为了使用它们,我想将它们更改为unix时间戳 我还没有找到一个可以将字符串转换为时间戳的密码命令/函数,但也许有人有主意了 我也遇到了APOC程序,但无论出于什么原因,我都无法让它们工作。我使用Win 7企业版操作系统

我需要定期将大型csv文件加载到neo4j中(每个文件有260万条记录)。我可以通过打开文件并逐行解析来实现这一点,这允许对记录进行操作,但性能相当差,因此我更喜欢使用neo4j提供的csv加载程序

在数据记录中,有类似“2016-12-13T08:07:03+01”格式的时间值。为了使用它们,我想将它们更改为unix时间戳

我还没有找到一个可以将字符串转换为时间戳的密码命令/函数,但也许有人有主意了

我也遇到了APOC程序,但无论出于什么原因,我都无法让它们工作。我使用Win 7企业版操作系统,运行Neo4J 3.1.0社区版64位。我将apoc-3.0.8.4-all.jar复制到当前neo4j安装(neo4j CE 3.1.0\plugins)的plugin文件夹中,并尝试调用dbms.procedures(),它似乎只显示从db.xxx开始的当前已实现的过程,调用apoc.help(“apoc”)失败“没有为该数据库实例注册名为
apoc.help
的过程。”。因此,我假设需要将其复制到当前使用的neo4j实例中。因此,我在其中创建了一个插件文件夹并重新启动了引擎。此操作失败,原因是”启动Neo4j失败:组件“org.Neo4j.server.database”。LifecycleManagingDatabase@803551'已成功初始化,但启动失败。请参阅附加的原因异常。“。检查debug.log时,我会看到如下警告

2017-01-10 06:42:02.382+0000 WARN  [o.n.k.i.p.Procedures] Failed to load `apoc.couchbase.CouchbaseConnection` from plugin jar `/D:/xxx/Neo4j/default.graphdb/plugins/apoc-3.0.8.4-all.jar`: com/couchbase/client/java/document/Document
2017-01-10 06:42:02.382+0000 WARN  [o.n.k.i.p.Procedures] Failed to load `apoc.couchbase.CouchbaseManager` from plugin jar `/D:/xxx/Neo4j/default.graphdb/plugins/apoc-3.0.8.4-all.jar`: com/couchbase/client/java/env/CouchbaseEnvironment
2017-01-10 06:42:02.382+0000 WARN  [o.n.k.i.p.Procedures] Failed to load `apoc.couchbase.document.CouchbaseUtils` from plugin jar `/D:/xxx/Neo4j/default.graphdb/plugins/apoc-3.0.8.4-all.jar`: com/couchbase/client/core/message/kv/MutationToken
2017-01-10 06:42:02.523+0000 WARN  [o.n.k.i.p.Procedures] Failed to load `apoc.mongodb.MongoDBColl` from plugin jar `/D:/xxx/Neo4j/default.graphdb/plugins/apoc-3.0.8.4-all.jar`: org/bson/conversions/Bson
2017-01-10 06:42:02.554+0000 WARN  [o.n.k.i.p.Procedures] Failed to load `apoc.schema.AssertSchemaProcedure` from plugin jar `/D:/xxx/Neo4j/default.graphdb/plugins/apoc-3.0.8.4-all.jar`: org/neo4j/kernel/api/proc/CallableProcedure$Context
没有办法通过重新安装Neo4J来修复此问题,因为即使删除插件,实例也不会再启动


谷歌在这方面帮不上什么忙,所以我希望有人知道如何使用密码功能将这些字符串转换为时间戳,或者知道如何解决apoc问题。dmaybe甚至有一个更改时间戳的示例代码。

您使用的是针对较旧版本的版本(Neo4j 3.0.x)

从外观上看,APOC在继续开发3.1.x产品线的同时,正在维护3.0.x安装版本

下面是。如果向下滚动,您会看到还有3.1.x版本(截至2017年1月10日的最新版本为3.1.0.3),这些版本与您正在使用的Neo4j版本相对应。请使用这些版本中的最新版本

对于这个需要重新安装才能修复的旧安装,如果这是正确的,它需要APOC的维护人员给予一些注意(我为此提出了一个问题)

编辑


使用MacOS安装,community version 3.1.0,尝试使用较旧的APOC jar启动时会导致错误并阻止启动,删除jar可以让它正常启动。可能损坏问题是Windows或64位Windows版本特有的。

Awesome,我被“此版本针对Neo4j 3.0.8及更高版本”误导了“假设还讨论了Neo4J 3.1。改用apoc-3.1.0.3-all.jar解决了这个问题,非常感谢。没问题,这很混乱,apoc维护人员应该解决这个问题。我认为这是APOC第一次在最近的Neo4j 3.1发行版中同时维护单独的分支,所以他们有一些关于发行过程和注释的修复。