[HADOOP] 하둡과 NLTK : 스톱 워드로 실패
HADOOP하둡과 NLTK : 스톱 워드로 실패
하둡에서 파이썬 프로그램을 실행하려고합니다. 이 프로그램에는 NLTK 라이브러리가 포함됩니다. 이 프로그램은 여기에 설명 된대로 Hadoop Streaming API도 활용합니다.
mapper.py:
#!/usr/bin/env python
import sys
import nltk
from nltk.corpus import stopwords
#print stopwords.words('english')
for line in sys.stdin:
print line,
reducer.py:
#!/usr/bin/env python
import sys
for line in sys.stdin:
print line,
콘솔 명령 :
bin/hadoop jar contrib/streaming/hadoop-streaming.jar \ -file /hadoop/mapper.py -mapper /hadoop/mapper.py -file /hadoop/reducer.py -reducer /hadoop/reducer.py -input /hadoop/input.txt -output /hadoop/output
이것은 입력 파일의 행을 포함하는 출력과 함께 완벽하게 실행됩니다.
그러나이 줄 (mapper.py에서) :
#print stopwords.words ( 'english')
주석 처리가 없으면 프로그램이 실패하고
나는 독립형 파이썬 프로그램을 확인했다.
완벽하게 작동하므로 Hadoop 프로그램이 실패하는 이유에 대해 절대적으로 충격을 받았습니다.
도움을 주시면 감사하겠습니다. 감사합니다
해결법
-
==============================
1.'영어'가 인쇄 중지 단어의 파일입니까? words ( 'english')? 그렇다면 노드를 통해 전송하려면 -file을 사용해야합니다.
'영어'가 인쇄 중지 단어의 파일입니까? words ( 'english')? 그렇다면 노드를 통해 전송하려면 -file을 사용해야합니다.
-
==============================
2.다음 명령을 사용하여 압축을 풉니 다.
다음 명령을 사용하여 압축을 풉니 다.
importer = zipimport.zipimporter('nltk.zip') importer2=zipimport.zipimporter('yaml.zip') yaml = importer2.load_module('yaml') nltk = importer.load_module('nltk')
위에 붙여 넣은 링크를 확인하십시오. 그들은 모든 단계를 언급했습니다.
from https://stackoverflow.com/questions/19057741/hadoop-and-nltk-fails-with-stopwords by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 기본 키로 하이브 테이블을 만들 수 없습니다 (0) | 2019.09.15 |
---|---|
[HADOOP] 복잡한 편집을 구현하는 방법은 무엇입니까? (0) | 2019.09.15 |
[HADOOP] HDFS에서 다른 블록 배치 정책을 가질 수 있습니까? (0) | 2019.09.15 |
[HADOOP] http : // localhost : 50070 /의 hadoop 웹 UI가 작동하지 않습니다 (0) | 2019.09.15 |
[HADOOP] 하이브 : CSV 파일에 포함 된 JSON 열을 분해하는 방법은 무엇입니까? (0) | 2019.09.14 |