我尝试使用Neo4j csv batch-importer上传大型csv(~20 mil线路)。我一直坚持如何解析csv才能使用导入程序。这就是csv的样子:
CUSTOMER_NAME,TRANSACTION_DATE,TRANSACTION_NO,TRANSACTION_TYPE,COMPANY_TYPE,COMPANY_NAME,STREETNUM,STREETNAME,CITY,STATE,ZIPCODE
图形结构如下 - 我在浏览器中创建图形(这么多行太慢了):
MERGE (state:STATE{STATE: {line.STATE}})
MERGE (company:COMPANY{COMPANY_NAME: line.COMPANY_NAME, COMPANY_TYPE: line.COMPANY_TYPE, STREETNUM: line.STREETNUM, STREETNAME: line.STREETNAME})
MERGE (customer:CUSTOMER{CUSTOMER_NAME: line.CUSTOMER_NAME})
MERGE (zipcode:ZIPCODE{ZIPCODE: line.ZIPCODE})
MERGE (customer)-[:TRANSACTION{TRANSACTION_NO: line.TRANSACTION_NO, TRANSACTION_TYPE: line.TRANSACTION_TYPE}]->(company)-[:LOCATION]-(zipcode)
MERGE (state)-[:CITY{CITY: line.STATE}]-(zipcode)
batch-importer需要使用多少csv?我可以用两个csvs(nodes / rels)重新创建这个图形结构吗?如果是这样,我对这些特定csvs的结构感到困惑。例如:
nodes.csv:
COMPANY:string:COMPANY,l:label,COMPANY:string:COMPANY_NAME,COMPANY:string:COMPANY_TYPE,COMPANY:string:STREETNUM,COMPANY:string:STREETNAME
^我在哪里包含其他节点?
rels.csv
STATE:string:STATE,ZIPCODE:string:ZIPCODE,CITY,CITY:string:CITY
^如何包含完整路径(2 + rels)或多个关系?
答案 0 :(得分:0)
neo4j批处理导入程序要求您将节点和边缘放在单独的csv文件中。 我建议您处理原始文件以生成nodes.csv和edges.csv文件,其中只包含每个文件中的节点和边缘。
使用导入器时,您还可以为节点和边指定多个文件,例如:
import.bat test.db "nodes1.csv,nodes2.csv" "edges1.csv,edges2.csv"
希望有所帮助。