neo4j cypher的 load csv用法


 
 
 
 
csv文件格式:
        使用load csv指令必须遵循以下规则:
        字符串是utf8格式
        数据的行结束符依赖系统,windows是\r\n,linux是\n
        默认的字段分隔符是 ","
        默认的字段分隔符,可以使用load csv指令的FIELDTERMINATOR选项指定
        字符串前后可以使用引号,但是导入时会无视引号
        字符串的引号使用双引号
        如果dbms.import.csv.legacy_quote_escaping=true,则\被当做转义字符
        引号必须成双出现
 
 
 
导入CSV文件的方式
 
导入CSV文件(不带csv头)
文件artists.csv内容:
1,ABBA,1992
2,Roxette,1986
3,Europe,1979
4,The Cardigans,1992
 
执行导入语句:
        LOAD CSV FROM '{csv-dir}/artists.csv' AS line
        CREATE (:Artist { name: line[1], year: toInteger(line[2])})
指令执行效果:
        +-------------------+
        | No data returned. |
        +-------------------+
        Nodes created: 4
        Properties set: 8
        Labels added: 4
解释:
        该语句实现了,在导入csv时,从csv文件中获取内容做为结点的属性。
        line很有意思,csv内部将每一行拆解成list,line[1]代表了第二列,line[2]则代表是了数字年份
 
 
导入带文件头的CSV文件
 
文件artists-with-headers.csv内容:
Id,Name,Year
1,ABBA,1992
2,Roxette,1986
3,Europe,1979
4,The Cardigans,1992
 
执行导入语句:
        LOAD CSV WITH HEADERS FROM '{csv-dir}/artists-with-headers.csv' AS line
        CREATE (:Artist { name: line.Name, year: toInteger(line.Year)})
指令执行效果:
        +-------------------+
        | No data returned. |
        +-------------------+
        Nodes created: 4
        Properties set: 8
        Labels added: 4
解释:
        该语句同上,实现了在导入csv时,从csv文件中获取内容做为结点的属性。
        line很有意思,与上面使用序号不同,csv内部将每一行拆解成list,以表头为属性,获取对应数据,与上一个序号有些不同
 
自定义csv文件的分隔符
 
文件artists-fieldterminator.csv内容:
1;ABBA;1992
2;Roxette;1986
3;Europe;1979
4;The Cardigans;1992
 
执行导入语句:
        LOAD CSV FROM '{csv-dir}/artists-fieldterminator.csv' AS line FIELDTERMINATOR ';'
        CREATE (:Artist { name: line[1], year: toInteger(line[2])})
 
指令执行效果:
        +-------------------+
        | No data returned. |
        +-------------------+
        Nodes created: 4
        Properties set: 8
        Labels added: 4
 
使用csv文件上传大量数据
        在上传大量语句时,必须使用USING PERIODIC COMMIT语句实现分段上传,这可以避免内存的极大扩散导致的问题。
        默认每次上传1000条 
 
执行导入语句:
        USING PERIODIC COMMIT
        LOAD CSV FROM '{csv-dir}/artists.csv' AS line
        CREATE (:Artist { name: line[1], year: toInteger(line[2])})
指令执行效果:
        +-------------------+
        | No data returned. |
        +-------------------+
        Nodes created: 4
        Properties set: 8
        Labels added: 4
 
使用csv文件上传大量数据时,限制批次上传的数量
执行导入语句:
        USING PERIODIC COMMIT 500
        LOAD CSV FROM '{csv-dir}/artists.csv' AS line
        CREATE (:Artist { name: line[1], year: toInteger(line[2])})
 
指令执行效果:
+-------------------+
| No data returned. |
+-------------------+
Nodes created: 4
Properties set: 8
Labels added: 4
 
 
 
 
 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM