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