1

我的数据格式使用 \0 而不是换行符。所以默认的 hadoop textLine 阅读器不起作用。如何将其配置为读取由特殊字符分隔的行?

如果无法配置 LineReader,也许可以应用特定的流处理器(tr "\0" "\n") 不确定如何执行此操作。

4

3 回答 3

2

"textinputformat.record.delimiter"为此目的有一个配置属性。您可以通过将此属性值更改为“\0”来更改默认 EOL(“\n”)分隔符。

有关更多信息,请访问此处:http ://amalgjose.wordpress.com/2013/05/27/custom-text-input-format-record-delimiter-for-hadoop

关于更改 spark 中的默认分隔符还有一个类似的问题,这也可能很有用:Setting textinputformat.record.delimiter in spark

于 2014-03-26T16:32:48.417 回答
1

您可以编写自己的 InputFormat 类来拆分数据\0而不是\n. 有关如何执行此操作的演练,请在此处查看:http: //developer.yahoo.com/hadoop/tutorial/module5.html#fileformat

它的要点是您需要继承默认InputFormat类或其任何子类,并RecordReader使用自定义规则定义您自己的。有关更多信息,您可以参考 InputFormat 文档。

于 2012-08-27T18:20:28.583 回答
0

怎么样,使用TextDelimited方案会起作用吗?http://docs.cascading.org/cascading/1.2/javadoc/cascading/scheme/TextDelimited.html

这避免了必须编写自己的InputFormat等。

分隔文本的示例位于 https://github.com/Cascading/Impatient/wiki/Part-2

于 2013-01-03T05:52:48.473 回答