我正在尝试使用LOAD CSV创建节点,标签设置为CSV中的值.那可能吗?我正在尝试这样的事情:
LOAD CSV WITH HEADERS FROM 'file:///testfile.csv' AS line
CREATE (x:line.label)
Run Code Online (Sandbox Code Playgroud)
...但是我得到了无效的语法错误.有没有办法做到这一点?
neo4j版本2.3.1
索引存在于Stoptime.stop_sequence和Stoptime.key.
Stoptime.stop_sequence是数字.
图形:
(Stoptime)-[:PART_OF]->(Trip)
声明:
//USING PERIODIC COMMIT 1000
PROFILE
load csv with headers from "file:///path/to/csv" as csv with csv limit 0
match (s1:Stoptime{key:(csv.trip_id + csv.stop_id)})-[:PART_OF]->(trip:Trip), (s2:Stoptime)-[:PART_OF]->(trip)
where s2.stop_sequence = s1.stop_sequence + 1
create (s1)-[:PRECEDES]->(s2);
Run Code Online (Sandbox Code Playgroud)
生成的配置文件如下所示:
+-----------------------+------+---------+----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+
| Operator | Rows | DB Hits | Identifiers | Other |
+-----------------------+------+---------+----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+
| +EmptyResult | 0 | 0 | | |
| | +------+---------+----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+
| +UpdateGraph | 0 | 0 | anon[188], anon[227], anon[311], csv, s1, …Run Code Online (Sandbox Code Playgroud) 有没有办法在导入时告诉neo4j值的类型?例如,neo4j 是否知道“2015-0104T10:33:44”是日期还是字符串?
谢谢!
我开始使用Cypher的LOAD CSV for Neo4J将更大的csv文件导入我的数据库.我想向每个导入的节点添加一个唯一的ID(uuid)作为属性.
我的尝试是:
LOAD CSV FROM "file:..." AS csvLine
CREATE (c:Customer { uuid: {uuid}, name: csvLine[0], code: csvLine[1]})
Run Code Online (Sandbox Code Playgroud)
不幸的是,我为每个节点收到相同的UUID(虽然它是一个通常在调用时生成UUID的函数),看起来UUID生成了一次,然后在创建节点和解析csv文件时附加到每个节点.
有没有办法为每个导入的csv-line生成一个新的UUID来标记节点?
感谢Balael的提示
load csv with headers from 'file:///C:/Users/user/Desktop/Neo4J'
as row
Create (:State_Code {state_cd:row.st_cd})
Run Code Online (Sandbox Code Playgroud)
我试过这段代码,它抛出一个错误:
Neo.ClientError.Statement.ExternalResourceFailed:无法加载外部资源:file:/C:/Users/ssarse/Desktop/Neo4J
谁能帮我解决这个问题?
我在运行Ubuntu 14.04的公司云服务器上全新安装了Neo4j 2.1.4开源软件。我正在将CSV文件导入数据库。我文件的路径是'/home/username/data-neo4j/node.csv'
以下是我的命令,该命令是从Neo4j命令行工具neo4j-shell运行的:
LOAD CSV WITH HEADERS FROM "file:///home/username/data-neo4j/node.csv" AS line CREATE (:Node { nid: toInt(line.nid), title: line.title, type: line.type, url: line.url});
返回:
LoadExternalResourceException: Couldn't load the external resource at: file:/home/user/data-neo4j/node.csv
这看起来像一条消息,指出找不到文件。但是,该文件到位。我什至尝试将文件的权限更改为755。
我在本地计算机(带有Neo4j 2.1.2 Enterprise的OSX)上有一个Neo4j的单独实例。给定我切换的路径以匹配,该命令在本地计算机上成功执行。
当我运行neo4j-shell时,我注意到的一件事是 NOTE: Remote Neo4j graph database service 'shell' at port 1337。我已经打开了该端口,但是我的命令仍然返回相同的错误消息。
我也阅读了此链接-但他们的问题是他们尚未上传文件。我的文件到位了。