我正在试验Apache Giraph,我需要为驻留在HDFS中的csv文件创建一个简单的图形,该图形显示2列之间的关系。(与商店名称相关的受害者)
我的数据大小超过1Gb csv格式。最初尝试通过Java与本地文件一起使用neo4j,但是它只能加载小数据,不能直接从HDFS导入数据。我的数据可能会增加。因此请考虑使用Apache Giraph。

但是如何实现相同?

Hope apache giraph只接受纯文本格式的输入。我的数据为csv格式。因此,有没有什么工具可以使我的csv变为图形格式,并将其作为输入提供给Giraph,以便在图形中进行计算。

最佳答案

我也有同样的疑问,尽管很多答复似乎都建议将图形重写为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(对于其他类型也是如此)。

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

09-04 07:18
查看更多