복붙노트

[HADOOP] 큰 csv 파일을 처리하기 위해 Python에서 Hadoop 사용하기

HADOOP

큰 csv 파일을 처리하기 위해 Python에서 Hadoop 사용하기

Amazon EMR (python)에서 Hadoop MapReduce를 사용하여 처리하고자하는 거대한 CSV 파일이 있습니다.

파일에는 7 개의 필드가 있지만 날짜 및 수량 필드 만보고 있습니다.

 "date" "receiptId" "productId" "quantity"  "price" "posId" "cashierId"

첫째, 내 mapper.py

import sys

def main(argv):
    line = sys.stdin.readline()
    try:
        while line:
            list = line.split('\t')

            #If date meets criteria, add quantity to express key
                if int(list[0][11:13])>=17 and int(list[0][11:13])<=19:
                    print '%s\t%s' % ("Express", int(list[3]))
            #Else, add quantity to non-express key
                else:
                    print '%s\t%s' % ("Non-express", int(list[3]))

            line =  sys.stdin.readline()
except "end of file":
        return None
if __name__ == "__main__":
        main(sys.argv)

감속기의 경우 스트리밍 명령 인 집계를 사용합니다.

의문:

해결법

  1. ==============================

    1.내 자신의 질문에 대답!

    내 자신의 질문에 대답!

  2. from https://stackoverflow.com/questions/9255973/using-hadoop-in-python-to-process-a-large-csv-file by cc-by-sa and MIT license