gpt4 book ai didi

hadoop - hadoop中可写接口(interface)错误

转载 作者:可可西里 更新时间:2023-11-01 17:01:13 25 4
gpt4 key购买 nike

我创建了一个 VectorWritable 类,它实现了 Writable 接口(interface)。我正在尝试将 VectorWritable 对象写入输出文件,但我得到的是:VectorWritable@1355b88b。这是我的写法:

public void write(DataOutput out) throws IOException {  
getVectorString().write(out);
}

函数 getVectorString() 给出一个 Text 对象。

最佳答案

我没有 50 个代表可以发表评论,所以我会把它写成一个答案。

如何在 getVectorString() 中创建这个 Text 对象?您不是在 VectorWritable 对象上调用默认的 toString() 方法吗,它会返回类似“VectorWritable@1355b88b”的字符串,除非您覆盖它以返回描述您的对象的更有用的字符串?

编辑:

根据您的评论 Text vectorStringVectorWritable 类的成员,您在 set 中设置此 Text 对象> 方法,所以我猜 set 方法也在 VectorWritable 中,而且它不是静态方法,所以为什么要传递 VectorWritable反对吗?看起来您可以在一个 VectorWritable 对象上调用此 set 方法,将另一个传递给它,并且 vectorString 与周围的 VectorWritable 不匹配 对象。

如何将 VectorWritable 写入输出?您是否调用了您在问题中发布的 write 方法?因为此输出 VectorWritable@1355b88b 看起来像您将 VectorWritable 作为参数传递给调用其默认 toString() 方法的方法,该方法将返回字符串像 VectorWritable@1355b88b

可写接口(interface)用于序列化对象。因此,您可以将对象写入输出,然后将其读回,但是在您的实现中,很难解析您创建的字符串并读回对象。 Example of implementation

   public void write(DataOutput out) throws IOException {
out.writeInt(counter);
out.writeLong(timestamp);
}

public void readFields(DataInput in) throws IOException {
counter = in.readInt();
timestamp = in.readLong();
}

关于hadoop - hadoop中可写接口(interface)错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23847167/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com