복붙노트

[HADOOP] 돼지에 파일을로드하고이를 압축 해제

HADOOP

돼지에 파일을로드하고이를 압축 해제

나는 돼지에 푸른 저장에서 파일의 무리를로드하고 있습니다. 파일 확장자에 .gz 모든 것이 잘 작동 그래서 만약 돼지 gzip을위한 기본 지원합니다.

문제는 오래된 파일은 .ZIP 확장 (I 그 수백만이)가 저장되어 있다는 점이다.

파일을로드와 gzip으로 .ZIP 치료하는 돼지를 알 수있는 방법이 있습니까?

해결법

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

    1.난 정말 다른 옵션을 사용할 수 있습니다 모르겠지만 당신은 이런 식으로 뭔가를 시도 할 수 있습니다

    난 정말 다른 옵션을 사용할 수 있습니다 모르겠지만 당신은 이런 식으로 뭔가를 시도 할 수 있습니다

    그냥 샘플 예제는 하나 개의 파일에 대해, 당신은 당신의 필요에 따라 스크립트를 변경해야 할 수도 있습니다.

    input.zip
    1,john
    2,cena
    3,rock
    4,sam
    
    test.sh
    #!/bin/bash
    FILE_NAME=$(echo $1 | cut -d '.' -f1)
    unzip  "$1"
    tar czf "$FILE_NAME.gz" "$FILE_NAME"
    pig -x local -param PIG_INPUT_FILE="$FILE_NAME.gz" -f myscript.pig
    
    myscript.pig
    A = LOAD '$PIG_INPUT_FILE' USING PigStorage(',');
    DUMP A;
    

    산출:

    $ ./test.sh input.zip
    
    (1,john)
    (2,cena)
    (3,rock)
    (4,sam)
    

    다른 가능한 옵션은 java.util.zip 라이브러리를 사용하여 GZ와 LoadFunc 옵션을 호출하는 우편을 변환하는 UDF를 작성해야 할 수도 있습니다. 나는이 옵션을 시도하지 않았다 그러나 당신이 원하는 경우에 당신은 시도를 제공 할 수 있습니다.

  2. from https://stackoverflow.com/questions/26239338/loading-files-into-pig-and-decompressing-them by cc-by-sa and MIT license