java-在hadoop FS中编写二叉树

我需要将一棵二进制树写入HDFS,我将用它来表示一个决策树.但是为了做到这一点,我首先需要创建一个BinaryTreeNode类,它将是树节点.这些是我的课程属性:

private String name;
private String attribute;
private String attType;
private String condition;
private String lines;
private BinaryTreeNode leftChild;
private BinaryTreeNode rightChild;

所以现在我需要实现write和readFields方法来读写这些节点.这些是我所做的:

public void write(DataOutput d) throws IOException 
{
    d.writeUTF(name);
    d.writeUTF(attribute);
    d.writeUTF(attType);
    d.writeUTF(condition);
    d.writeUTF(lines);
    //SOMETHIN FOR LEFT AND RIGHT CHILD
}

public void readFields(DataInput di) throws IOException 
{
    name=di.readUTF();
    attribute=di.readUTF();
    attType=di.readUTF();
    condition=di.readUTF();
    lines=di.readUTF();
    //SOMETHIN FOR LEFT AND RIGHT CHILD
}

BinaryTreeNode read(DataInput in) throws IOException
{
     BinaryTreeNode ob = new BinaryTreeNode();
     ob.readFields(in);
     return ob;
}

我无法想到的是如何编写和读取我的2个子节点.请注意,将以递归方式构建树,并且每个节点将具有0-2个子节点.因此,我的后一个目的是拥有一个BinaryTree类,该类将具有BinaryTreeNode属性根.谢谢

解决方法:

I need to write a binary tree to HDFS

All i need is a way to save and load my tree.

使用HDFS的原因是什么? HDFS是一个分布式文件系统,可以在其中存储任何类型的数据/文件.您已经编写了很多代码来有效地大规模存储和检索图形.

您可以从面向图的数据库(例如OrientDBNeo4j)中存储和检索图.

此外,还有开放源代码框架,例如Apache GiraphApache HamaGoldenOrb.可能还存在绑定以与Java程序进行交互.

上一篇:linux(八)__yum工具


下一篇:有没有办法在运行时修改Linux C程序中的函数代码?