0
我的hadoop M/R作業的輸入文件是一個文本文件,其中記錄由製表符'\ t'而不是換行'\ n'分隔。如何指示hadoop使用製表符分割,默認情況下,它將圍繞換行符進行分割,並將文本文件中的每一行作爲記錄。如何將tab指定爲hadoop輸入文本文件的記錄分隔符?
一種方法是使用自定義輸入格式類,該類使用濾鏡流將原始流中的所有選項卡轉換爲換行符。但這看起來不太優雅。
另一種方法是使用java.util.Scanner
和tab作爲分隔符。但我不知道如何在輸入格式類中使用java.util.Scanner
類。
什麼是最佳方法和選擇?
也許我錯過了一些東西,但難道你不能通過將你的記錄放在不同的線上來解決這個問題嗎? 而不是:record1 \ t record2 \ t等。 使用: record1 \ n record2 即 - 如果您可以控制您的輸入格式是什麼。否則,您需要更改輸入格式和記錄讀取器類。 – SubSevn
我無法更改輸入文件。它也被其他應用程序使用。 – nabeelmukhtar
然後你可能不得不做一些已經發布的答案。 – SubSevn