2014-04-04 92 views
9

我在hdfs bigfile.txt中有一個大文件。我想將它的前100行復制到hdfs上的新文件中。我試過以下命令:如何將hadoop中大文件的前幾行復制到新文件中?

hadoop fs -cat /user/billk/bigfile.txt |head -100 /home/billk/sample.txt 

它給了我一個「貓:無法寫輸出流」的錯誤。我在Hadoop 1.

是否有其他方法可以做到這一點? (注意:複製第一個100線到本地或HDFS上的另一個文件是OK)

回答

11

這樣的 -

hadoop fs -cat /user/billk/bigfile.txt | head -100 | hadoop -put - /home/billk/sample.txt 

我相信「貓:無法寫入輸出流」只是因爲關閉它讀取了它的極限之後的流。看到這個回答關於爲hdfs - https://stackoverflow.com/a/19779388/3438870

+0

將樣品複製到本地,使用此: hadoop fs -cat/path/to/hdfsfile |頭-100 | hadoop fs -get path/to/local/sample1 – Adrian

+0

如果您希望將結果重定向到本地,您可以將其重定向到文件而不是通過hdfs進行管道傳輸。 head -100> local/sample.txt – Scott

+0

@Scott這也導致'cat:無法寫入輸出流'問題 –

相關問題