2016-07-04 34 views
0

我想使用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框架。 –

回答

0

我管理通過指定欲讀取和其字節開始(參數「n」和「開始」)中的字節數量來解決它。看起來這些參數需要明確設置才能讀取整個文件。

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

其中「hdfspath」指向HDFS文件。