2017-09-21 4 views
1

Hadoop에서 Json 파일을 처리하기 위해 Python 코드를 사용하여 Mapper를 작성하는 방법. I 코드 아래 시도 : 쉘 명령 cat user_info.json | python mapper.py을 사용하여 상기 코드를 실행하는 방법에파이썬에서 JSON 파일에 대한 스트리밍 mapreduce 작업을 작성하는 방법은 무엇입니까?

import json 
import sys 
data = json.loads(sys.stdin) 

그것이 보이고 에러 :

Traceback (most recent call last): 
    File "mapper.py", line 6, in <module> 
    data = json.loads(sys.stdin) 
    File "/usr/lib64/python2.6/json/__init__.py", line 307, in loads 
    return _default_decoder.decode(s) 
    File "/usr/lib64/python2.6/json/decoder.py", line 319, in decode 
    obj, end = self.raw_decode(s, idx=_w(s, 0`enter code here`).end()) 
TypeError: expected string or buffer 

답변

1

json.loads() 함수는 JSON를 나타내는 문자열을 기대 문서; 그러나, 당신은 File object를 전달하고 있습니다. 파일 인 경우, 예를 들어, 한 줄에 하나씩 JSON 문서와, 당신은 라인으로 라인을 표준 입력을 반복하고 각 줄 구문 분석 할 수 있습니다 :

import json 
import sys 

for line in sys.stdin: 
    print json.loads(line.strip()) 
관련 문제