处理文本文件时hadoop如何识别记录? 它是基于换行符还是句号?
如果我有一个5000字的文本文件列表,全部在单行上,以空格分隔;没有新行字符,逗号或句号。 RecordReader将如何表现?
e.g。 abc pqr xyz lmn qwe rew poio kjkh ascd lkyg ......
答案 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' )
。
因此,您的示例行将被读作单个记录。
您可以阅读LineReader,TextInputFormat和LineRecordReader的代码了解详情。