[HADOOP] 피클과 sys.stdin를 사용하여 하둡에서 defaultdict로드
HADOOP피클과 sys.stdin를 사용하여 하둡에서 defaultdict로드
나는 시간 전에 비슷한 질문을 게시,하지만 이후 잘못된 질문을했다 실현 후 삭제했다. 나는 다음 절인 defaultdict 있습니다 :
ccollections
defaultdict
p0
(c__builtin__
list
p1
tp2
Rp3
V"I love that"
p4
(lp5
S'05-Aug-13 10:17'
p6
aS'05-Aug-13 10:17'
하둡을 사용하는 경우, 입력은 항상 사용하여 읽기 :
for line in sys.stdin:
나는이를 사용하여 절인 defaultdict를 읽는 시도 :
myDict = pickle.load(sys.stdin)
for text, date in myDict.iteritems():
그러나 아무 소용이. 내가 로컬 ( '파일 이름 .txt')를 .load 사용하여 테스트로 코드의 나머지 부분은 작동합니다. 나는이 잘못을하고 있습니까? 어떻게 정보를로드 할 수 있습니까?
최신 정보:
온라인 튜토리얼을 수행 한 후, 나는이 내 코드를 수정할 수 있습니다 :
def read_input(file):
for line in file:
print line
def main(separator='\t'):
myDict = read_input(sys.stdin)
: 그러나, defaultdict 구조의 어떤 외관이 출력, 보관하지 않습니다 -이 성공적으로 파일을 읽고 보여주는 각 행을 출력
p769
aS'05-Aug-13 10:19'
p770
aS'05-Aug-13 15:19'
p771
as"I love that"
분명히 이것은 좋지는 않습니다. 사람이 어떤 제안이 있습니까?
해결법
-
==============================
1.왜 피클 형식으로 입력 데이터는? 사용자의 입력 데이터는 어디에서 오는가? 하둡 / 맵리 듀스의 목표 중 하나는 단일 시스템의 메모리에 비해 너무 큰 데이터를 처리하는 것입니다. 따라서, 전체 입력 데이터를 읽고 다음을 직렬화하려고하면 MR 디자인 패러다임에 반하는 실행 가능성도 생산 규모의 데이터 세트와 함께 작동하지 않습니다.
왜 피클 형식으로 입력 데이터는? 사용자의 입력 데이터는 어디에서 오는가? 하둡 / 맵리 듀스의 목표 중 하나는 단일 시스템의 메모리에 비해 너무 큰 데이터를 처리하는 것입니다. 따라서, 전체 입력 데이터를 읽고 다음을 직렬화하려고하면 MR 디자인 패러다임에 반하는 실행 가능성도 생산 규모의 데이터 세트와 함께 작동하지 않습니다.
이 솔루션은 행 당 사전 정확히 하나의 튜플로 예를 들어,로, TSV 텍스트 파일을 사용자의 입력 데이터를 포맷하는 것입니다. 그런 다음 예컨대, 자신의 각 튜플을 처리 할 수 있습니다 :
for line in sys.stdin: tuple = line.split("\t") key, value = process(tuple) emit(key, value)
-
==============================
2.당신이 완전히 데이터를 읽는다면, 나는) (당신이 pickle.loads를 사용할 수 있다고 생각합니다.
당신이 완전히 데이터를 읽는다면, 나는) (당신이 pickle.loads를 사용할 수 있다고 생각합니다.
myDict = pickle.loads(sys.stdin.read())
from https://stackoverflow.com/questions/18580321/loading-a-defaultdict-in-hadoop-using-pickle-and-sys-stdin by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 얌 하둡을 설치 오류를 찾을 수 없습니다 CentOS는 (0) | 2019.10.13 |
---|---|
[HADOOP] Nutch - 가져 오기 오류 : JAVA_HOME이 설정되어 있지 않습니다. 크롤링하려고 할 때 (0) | 2019.10.13 |
[HADOOP] 하둡 - 돼지를 사용하여 하이브 테이블을로드 (0) | 2019.10.13 |
[HADOOP] 윈도우 8에 돼지 0.13.0 설치 (0) | 2019.10.13 |
[HADOOP] hadoop2에서 JobClient.java과 JobSubmitter.java의 차이점은 무엇입니까? (0) | 2019.10.13 |