복붙노트

[HADOOP] 돼지 결과를 로컬 파일에 저장

HADOOP

돼지 결과를 로컬 파일에 저장

돼지 스크립트를 실행하면 약간의 조작이 발생하고 출력 크기는 매우 작습니다.

지금 나는 달린다.

hadoop fs -getmerge ...

갈라져.

돼지 스크립트가 로컬 파일에 직접 결과를 덤프하도록하는 방법은 없나요?

해결법

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

    1.모든 것을 하나의 파일에 병합하는 것에 대해 걱정하지 않는다면 grunt (http://wiki.apache.org/pig/Grunt)에서 copyToLocal 명령을 사용할 수 있습니다.

    모든 것을 하나의 파일에 병합하는 것에 대해 걱정하지 않는다면 grunt (http://wiki.apache.org/pig/Grunt)에서 copyToLocal 명령을 사용할 수 있습니다.

    grunt> copyToLocal <src> <dest>
    
  2. ==============================

    2.또 다른 가능한 방법은 Pig를 Python 또는 JavaScript에 포함시키는 것입니다. 다음과 같이 (Python으로) 할 수 있습니다 :

    또 다른 가능한 방법은 Pig를 Python 또는 JavaScript에 포함시키는 것입니다. 다음과 같이 (Python으로) 할 수 있습니다 :

    import os
    from org.apache.pig.scripting import Pig
    
    P = Pig.compile("PUT YOUR PIG CODE HERE")
    hdfs_input = "YOUR HDFS INPUT"
    hdfs_output = "YOUR HDFS OUTPUT"
    local_output = "YOUR LOCAL OUTPUT"
    result = P.bind({'in': input, 'out': hdfs_output}).runSingle()
    os.system("hadoop fs -getmerge " + hdfs_output + " " + local_output)
    

    그리고 파이썬 코드를 (예를 들어)

    pig -useHCatalog python_code.py
    
  3. from https://stackoverflow.com/questions/13685418/store-pig-result-to-local-file by cc-by-sa and MIT license