我的數據格式使用\ 0而不是換行。所以默認的hadoop textLine閱讀器無法工作。 如何將其配置爲讀取由特殊字符分隔的行?如何閱讀由特殊字符分隔的hadoop中的文本源
如果無法配置LineReader,也許可以應用特定的流處理器(tr「\ 0」「\ n」)不確定如何執行此操作。
我的數據格式使用\ 0而不是換行。所以默認的hadoop textLine閱讀器無法工作。 如何將其配置爲讀取由特殊字符分隔的行?如何閱讀由特殊字符分隔的hadoop中的文本源
如果無法配置LineReader,也許可以應用特定的流處理器(tr「\ 0」「\ n」)不確定如何執行此操作。
您可以編寫自己的InputFormat類,將\0
而不是\n
的數據分開。有關如何做到這一點的演練,檢查這裏:http://developer.yahoo.com/hadoop/tutorial/module5.html#fileformat
它的要點是,你需要繼承默認InputFormat類,或任何其子類,並使用自定義規則定義自己的RecordReader
。有關更多信息,請參閱InputFormat文檔。
怎麼樣,會使用TextDelimited
方案工作? http://docs.cascading.org/cascading/1.2/javadoc/cascading/scheme/TextDelimited.html
InputFormat
,
等分隔文本的
有用於該目的的"textinputformat.record.delimiter"
配置屬性。您可以通過將此屬性值更改爲「\ 0」來更改默認EOL(「\ n」)分隔符。
欲瞭解更多信息,請瀏覽:http://amalgjose.wordpress.com/2013/05/27/custom-text-input-format-record-delimiter-for-hadoop
也有一個類似的問題,要改變火花默認的分隔符,這可能是太有用:Setting textinputformat.record.delimiter in spark