hadoop RecordReader如何识别记录

时间:2015-08-07 11:31:58

标签: hadoop mapreduce recordreader

处理文本文件时hadoop如何识别记录? 它是基于换行符还是句号?

如果我有一个5000字的文本文件列表,全部在单行上,以空格分隔;没有新行字符,逗号或句号。 RecordReader将如何表现?

e.g。 abc pqr xyz lmn qwe rew poio kjkh ascd lkyg ......

1 个答案:

答案 0 :(得分:1)

您可以使用'\n' (LF) , '\r' (CR), or '\r\n' (CR+LF)在配置中设置分隔符。

如果没有提供,它将根据以下之一回退分割行:if( len(sys.argv) < 2 ): print "Please provide the SDK version!" print "Usage: python parse.py <sdk_version>" sys.exit(2) sdk_version = sys.argv[1] timestamp = int( time.time() ) created_on = datetime.datetime.fromtimestamp(timestamp).strftime( '%a %b %d %H:%M:%S %Z %Y' ) 。 因此,您的示例行将被读作单个记录。

您可以阅读LineReaderTextInputFormatLineRecordReader的代码了解详情。