将csv数据转换为图形数据

时间:2017-01-12 06:21:01

标签: java apache hadoop graph giraph

我正在试验Apache Giraph。我需要为我的csv文件创建一个简单的图形,该文件驻留在HDFS中,它显示了2列之间的关系。(受害者与商店名称相关) 我的数据大小高于1Gb csv格式。最初尝试使用带有本地文件的java的neo4j。但它只能加载小数据,不能直接从HDFS导入数据。我的数据可能会增加。所以想到使用Apache Giraph。

但是如何实现同样的目标呢?

希望apache giraph只接受rotxt格式的输入。我的数据是csv格式。是否有任何工具可以使我的csv图形格式并将其作为输入提供给Giraph进行图形计算。

1 个答案:

答案 0 :(得分:0)

我也有同样的疑问,尽管很多回答似乎都建议将图形重写为Giraph之外的标准格式,但这不是必需的。

您应该检查标准类的实现:

https://apache.googlesource.com/giraph/+/refs/heads/trunk/giraph-core/src/main/java/org/apache/giraph/io/formats/IntNullTextEdgeInputFormat.java

这将读取一个TSV文件(这是类名称的“ Text”部分),该文件包含成对的整数顶点ID对(这是“ Int”部分),格式为:

1   2
2   4
3   2
4   1
...

不考虑边缘元数据,仅考虑一对顶点(这是“ Null”部分)。

通过更改SEPARATOR,可以轻松地使该示例适应CSV,或者通过将IntWritable转换为Text来考虑字符串ID(对于其他类型也是如此)。

稍后将选择输入格式作为传递给框架的属性(给出您希望用于解析输入数据的类的完全限定名称)。