2017-05-27 161 views
0

我需要從HDFS獲取一些示例數據。HDFS中的示例數據

我使用:

hadoop fs -tail dev/sample.csv 

它顯示文件到stdout的最後一個千字節。


  • 有沒有辦法通過Java API使用hadoop fs -tail

  • 是否有任何其他方式從HDFS獲取樣本數據(隨機)?

+0

什麼只使用一個讀者的問題? – Solo

回答

0

你可以找到aws repo

一些數據集從org.apache.hadoop.fs.FsShell.tail(String[], int)可以使用HDFS DFS -tail,例如:

long fileSize = srcFs.getFileStatus(path).getLen(); 
long offset = (fileSize > 1024) ? fileSize - 1024: 0; 

while (true) { 
    FSDataInputStream in = srcFs.open(path); 
    in.seek(offset); 
    IOUtils.copyBytes(in, System.out, 1024, false); 
    offset = in.getPos(); 
    in.close(); 
    if (!foption) { 
    break; 
    } 
    fileSize = srcFs.getFileStatus(path).getLen(); 
    offset = (fileSize > offset) ? offset: fileSize; 
    try { 
    Thread.sleep(5000); 
    } catch (InterruptedException e) { 
    break; 
    } 
}