将数据帧保存到hdfs后,当我在使用rhdfs读取它时尝试反序列化时出现错误

时间:2015-07-15 08:45:29

标签: r hadoop serialization

我已经使用rhdfs库将数据帧写入hdfs,当我尝试将其读回时,我有错误。

编写数据帧的代码如下,

df.file <- hdfs.file("/mydir/df.Rdata", "w")
hdfs.write(df, df.file)
hdfs.close(df.file)

在我使用

中阅读它
df.file <- hdfs.file("/mydir/df.Rdata", "r")
m <- hdfs.read(df.file)
df <- unserialize(m)
hdfs.close(df.file)

但是我在反序列化阶段遇到错误,

Error in unserialize(m) : read error

有没有人知道这个错误的原因是什么以及我可以做些什么来阻止它。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

当您反序列化的对象大于65536字节

时会发生这种情况

如果你看一下RStudio环境,你会看到df对象是原始的[1:65536]并且你错过了文件的一部分

你应该像这段代码一样阅读:

enter image description here