java - 当起始节点不存在时,Talend Neo4j 关系组件会抛出错误

标签 java csv neo4j talend

我们正在使用 Talend Open Studio for Big Data 将 MySQL 数据迁移到 Neo4j。我已经有一些作业要运行,但是我在 rels.csv 文件上使用 tNeo4jOutputRelationship 组件时遇到了困难,该文件包含我们的 Nodes.csv 文件中不存在的值之间的关系。

抛出的显式错误:

Exception in component tNeo4jOutputRelationship_1

    java.lang.RuntimeException: Start node looked up by index with my_index as key and my_value as value doesn't exist

做了一些研究,发现代码部分在 Github 上抛出错误。

是否可以在运行时暂时抑制此错误?我们确实有相当多的重组数据,并不是每个 rels.csv 都会与每个作业的 Nodes.csv 相匹配。

最佳答案

我看到的最简单的方法是使用 MySQL 中拥有的 ID 创建 Nodes.csv 文件,或者在从 MySQL 导出到 Nodes.csv 时生成节点 ID。

然后,当使用 tNeo4jOutput 创建节点时,您还可以为从 MySQL 数据中获取的 ID 创建索引。 Create index on ID for node

下一步是在 MySQL 中创建关系的表示形式并导出到 CSV。这将具有应连接的节点的起始 ID 和结束 ID。 The ids defining the relationships

然后,在使用 tNeo4jOutputRelationship 组件时,您可以指定用于查找 ID 的索引,并指定关系.csv 文件中的起始 ID 和结束 ID。 Use the predifined IDs to create relationship

关于java - 当起始节点不存在时,Talend Neo4j 关系组件会抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19327968/

相关文章:

Python:使用 `import csv` 从 S3 存储桶读取 CSV

python - 使用 Pandas 计算导入的 csv 坐标之间的距离

java - 调试非托管 Neo4j 扩展

c# - Neo4jClient "CASE WHEN"连同返回

java - 查找jar中的所有依赖项

java - 从java自定义excel文件

java - 在 XML 布局中使用自定义 View

bash - 检查文件中的行是否具有相同的列数

neo4j - 在 Neo4j 2.1.0-M01 中轻松删除断开连接的节点

java - 如何在java客户端获取HDFS服务器的元数据信息?