一个小需求,不想写java的mapreduce的程序,想用streaming + python 处理一下就行了,遇到一些问题,做个笔记。
以后遇到这样的场景,可以放心使用了。
我是在windows 下的 pyCharm 编写的mapper 和 reducer ,直接上传到linux服务器,发现根本运行不了,老是报:
./maper.py file or directory not find
而且找不到原因,后来发现是windows和linux文件格式差异造成的。
也算是个教训吧。
python shell 脚本如果在windows上编写,到linux上运行,需要转换一下格式: dos2unix + 文件名
看一下python脚本:
mapper.py
#!/usr/bin/python
#coding:utf8
import json
import sys
import re
wrapper = ["fqa","fqq","gtt","zxb","zxa"]
for line in sys.stdin:
try:
line = line.decode("utf8")
str = re.split("\\s+&