2013-10-22 3 views
0

랩톱의 단일 노드 클러스터에서 hadoop을 사용하기 시작했으며 Java보다 더 잘 알고있는 Python으로 처리하려고했습니다. 분명히 스트리밍은 다른 패키지를 설치하지 않고 그렇게하는 가장 간단한 방법입니다. 잘과학적 데이터 분석을위한 Python 스트리밍

내 질문입니다, 내가 스트리밍 약간의 데이터 분석을 수행 할 때, 나는했다 : 기본 입력 파일에 맞게 텍스트 파일로 내 데이터 (매트릭스, 배열 ...)를 변환

  1. 스트리밍 형식.
  2. 내 mapper.py에서 데이터를 재구성하여 명시 적으로 (키, 값) 쌍을 만들어 인쇄하십시오.
  3. 결과를 텍스트 형식으로 읽고 매트릭스 데이터로 변환하여 다른 것들을 수행 할 수있게하십시오.

텍스트 파일로 입력 한 단어 수를 계산하면 모든 것이 잘 보입니다. 그러나 스트리밍 내에서 데이터 구조를 어떻게 처리합니까? 내가 한 방법은 ... 그냥 받아 들일 수없는 것 같다

+0

문제를 해결 된 것으로 표시하려면 선택한 답변 옆에있는 녹색 눈금을 클릭해야합니다. "해결 된"이라는 단어를 질문이나 제목으로 편집해도 문제가 해결 된 것이 아닙니다. 그 진드기를 클릭하십시오. –

답변

1

파이썬과 하둡를 들어, MRjob 패키지를 찾아 주시기 바랍니다 http://pythonhosted.org/mrjob/

당신은 ROWNUM - 값 쌍으로 매트릭스 행을 스트리밍, 당신의 ouwn 인코딩 디코딩 프로토콜을 쓸 수

, 또는 행 : col-value 쌍과 같은 모든 요소를 ​​포함 할 수 있습니다. 그 이외의 상호 데이터, 즉 당신이 키 - 값 처리가 다른 값에 의존하거나 의존하지 않을 때의 큰 양을 위해 설계부터

어느 쪽이든은, 하둡, 행렬 연산에 대한 작업을하는 가장 좋은 프레임 워크 아니다 매우 제한된 방법.

+0

가상 머신에서 cloudera quickstart 패키지를 사용했습니다. 나는 Hadoop에 다른 패키지를 설치할 수 있는지 확신하지 못한다. (나는 Pydoop을 시도했지만 작동하지 않았다.) 그러나 나중에 Mrjob을 확실히 시도 할 것이다. 감사! –

+0

그건 그렇고, mrjob을 설치하고 완벽하게 작동했습니다! –

+0

그런 다음 주제를 응답으로 표시 할 수 있습니다.) – alko

0

json을 텍스트 형식으로 사용하면 매우 편리하게 인코딩하고 디코딩 할 수 있습니다. 조작이 매우 용이하다 파이썬 사전에 각 라인을 파싱하는 JSON 라이브러리 매퍼 사용 json.loads()에서

{"row":3, "values":[0,0,1,0]} 
{"row":2, "values":[0,1,0,0]} 
{"row":4, "values":[0,0,0,1]} 
{"row":1, "values":[1,0,0,0]} 

:

은 예컨대 HDFS에 4 * 4 행렬이 저장 될 수있다. 다음 추가 JSON 뒤에 리턴 키 (JSON 같은 파이썬 객체를 인코딩 json.dumps() 사용) :

1 {"values":[1,0,0,0]} 
2 {"values":[0,1,0,0]} 
3 {"values":[0,0,1,0]} 
4 {"values":[0,0,0,1]} 

감속기를 사용 json.loads()의 값을 파이썬 사전을 만들. 이것들은 예를 들어 숫자가 적은 배열로 쉽게 변환 될 수 있습니다.

+0

json을 사용하는 것이 이상적입니다. 나는 시도 할 것이다! 감사 –

관련 문제