2015-01-16 44 views
2

我试图使用Neo4j csv batch-importer上传一个大的csv(~20密耳线)。我被困在如何解析CSV以便使用导入程序。这是CSV的样子:为batch_importer转换平板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) 

多少的CSV做我需要使用batch-importer?我可以用两个csvs(节点/ 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

neo4j批量导入程序要求您将节点和边缘放在单独的csv文件中。 我建议你处理你的原始文件,以生成nodes.csv和edges.csv文件,只有每个文件中的节点和边缘。

您也可以使用导入时,例如指定节点和边缘的多个文件: import.bat test.db "nodes1.csv,nodes2.csv" "edges1.csv,edges2.csv"

希望有所帮助。

+0

这是朝正确方向迈出的一步。我无法获取要填充的节点的属性,并且会跳过创建关系。 – user2338089