【问题标题】:create a neo4j graph from a csv file containing three columns从包含三列的 csv 文件创建 neo4j 图
【发布时间】:2020-09-08 01:34:18
【问题描述】:

我有一个 csv 文件,其中包含一些主题的生产者和消费者。例如

producer,topic,consumer
PRODUCER-1,TOPIC-A,CONSUMER-1
PRODUCER-2,TOPIC-B,CONSUMER-2
PRODUCER-1,TOPIC-C,CONSUMER-3
PRODUCER-1,TOPIC-D,CONSUMER-1
PRODUCER-2,TOPIC-E,CONSUMER-3

我正在尝试在 Zeppelin 笔记本中使用 neo4j 绘制图表以实现此目的。我设法加载了 csv,如下所示,但无法通过工作主题获得显示生产者和消费者之间关系的 pubsub 图。

LOAD CSV FROM 'file:///data/pubsub.csv' AS row
WITH row[0] AS Producer, row[1] AS Topic, row[2] AS Consumer
RETURN Producer, Topic, Consumer

不胜感激。 提前致谢

【问题讨论】:

  • 您的 Cypher 代码仅返回 CSV 文件中的数据(而不将其存储在数据库中)。您只是想以图形方式可视化数据,还是还想将数据存储在数据库中?

标签: neo4j apache-zeppelin


【解决方案1】:

尝试先将数据集存储到 Neo4j 中,然后对其进行查询...这将帮助您进行 Zeppelin 可视化

LOAD CSV WITH HEADERS FROM 'file:///data/pubsub.csv' AS row
MERGE (p:Producer{id:row.producer})
MERGE (t:Topic{id:row.topic})
MERGE (c:Consumer{id:row.consumer})
MERGE (p)-[:PRODUCER]->(t)
MERGE (t)-[:CONSUMER]->(c)

现在您已将数据保存到图表中,您可以尝试在 Zeppelin 中查询它:

MATCH p=()-->()
RETURN p

【讨论】:

  • 由于您的 CSV 包含您需要使用 LOAD CSV WITH HEADERS 的标题,请删除 WITH 子句,然后使用 row.producerrow.topic 等。否则,您最终将创建属性为实际标头的节点
  • 感谢 Tomaž Bratanič 和 hoyski,非常有帮助
  • 如何捕捉消费者也是生产者与另一个主题的关系?假设有一个新行,CONSUMER-2,TOPIC-F,CONSUMER-5。我想要一个包含所有节点的图表,包括TOPIC-B<--CONSUMER-2--->TOPIC-F。目前,CONSUMER-2 悬而未决
猜你喜欢
  • 2014-09-19
  • 2021-04-19
  • 2017-10-04
  • 2015-12-17
  • 2013-09-19
  • 1970-01-01
  • 2022-01-05
  • 2022-11-30
  • 2016-07-25
相关资源
最近更新 更多