2012-01-09 54 views
0

我有一个文件,其中有'鸡''10'等记录。我想根据“”而不是“/ t”来划分数据,这样我就可以把'鸡'当作我的钥匙,'10'可以当作我的价值。我认为我们需要更改getPartition方法,但我无法正确执行。有没有人有这样的例子?Hadoop中的客户分区

感谢您的帮助。

+0

近重复http://stackoverflow.com/questions/7271641/how-to-specify-tab-as-a-record-separator-for-的示例代码Hadoop的输入文本文件 – 2012-01-10 01:39:51

回答

0

在Streaming中,map函数从STDIO中读取一条直线,并由地图函数(用户代码)来处理它。下面是一个Python映射函数

import re 
import sys 
for line in sys.stdin: 
    val = line.strip() 
    (year, temp, q) = (val[15:19], val[87:92], val[92:93]) 
    if (temp != "+9999" and re.match("[01459]", q)): 
     print "%s\t%s" % (year, temp)