使用rhdfs库阅读HDFS时的大小问题

问题描述:

我想使用rhdfs库从R读取一些HDFS文件(csv文本)。我正在使用以下代码:使用rhdfs库阅读HDFS时的大小问题

hdfs.init() 
f = hdfs.file(hdfspath,"r") 
m = hdfs.read(f) 
> object.size(m) 
131112 bytes 

当我检查从HDFS读取的对象的大小时,会出现此问题。我只读了HDFS文件系统中的一小部分记录。不管原始HDFS文件的大小,我只获得131112字节(或大约2^17字节)。我试过改变buffersize参数,但没有成功。是否有任何特定的参数应该设置?

我在这里发现了类似的问题[1],但没有答案。

任何提示将不胜感激。

[1] https://github.com/RevolutionAnalytics/rhdfs/issues/8

+0

您可以在问题中显示您尝试检查尺寸的代码和结果吗?我很确定我知道答案,但是我很犹豫,先不说。 –

+0

谢谢@ Hack-R。我编辑了问题,添加了我也在使用的init函数和大小检查。除此之外,我唯一要做的就是设置HADOOP_CMD和HADOOP_HOME变量。 我不认为它与问题有关,但我使用的是Hortonworks框架。 –

我管理通过指定欲读取和其字节开始(参数“n”和“开始”)中的字节数量来解决它。看起来这些参数需要明确设置才能读取整个文件。

f = hdfs.file(hdfspath,"r") 
m = hdfs.read(f, start = 0, n = hdfs.ls(hdfspath)$size) 

其中“hdfspath”指向HDFS文件。