[HADOOP] PigLatin (Hadoop)으로 여러 파일로드
HADOOPPigLatin (Hadoop)으로 여러 파일로드
나는 같은 형식의 csv 파일의 hdfs 파일 목록을 가지고있다. 나는 그들을 함께 돼지와 함께로드 할 수 있어야합니다. 예 :
/path/to/files/2013/01-01/qwe123.csv
/path/to/files/2013/01-01/asd123.csv
/path/to/files/2013/01-01/zxc321.csv
/path/to/files/2013/01-02/ert435.csv
/path/to/files/2013/01-02/fgh987.csv
/path/to/files/2013/01-03/vbn764.csv
그들의 이름이 "무작위"해시이고 디렉토리에 더 많은 CSV 파일이 포함될 수 있기 때문에 이들을 글로블 할 수 없습니다.
해결법
-
==============================
1.다른 주석에서 제안 된 것처럼 파일을 사전 처리하여이 작업을 수행 할 수 있습니다. HDFS 파일이 file_list.txt라고 가정하면 다음을 수행 할 수 있습니다.
다른 주석에서 제안 된 것처럼 파일을 사전 처리하여이 작업을 수행 할 수 있습니다. HDFS 파일이 file_list.txt라고 가정하면 다음을 수행 할 수 있습니다.
pig -param flist=`hdfs dfs -cat file_list.txt | awk 'BEGIN{ORS="";}{if (NR == 1) print; else print ","$0;}'` script.pig
awk 코드는 개행 문자를 없애고 쉼표를 사용하여 파일 이름을 분리합니다.
스크립트 (예제에서는 script.pig)에서 매개 변수 대체를 사용하여 데이터를로드해야합니다.
data = LOAD '$flist';
-
==============================
2.당신은 그물에 국한되지 않습니다. 이것을 사용하십시오 :
당신은 그물에 국한되지 않습니다. 이것을 사용하십시오 :
LOAD '/path/to/files/2013/01-{01/qwe123,01/asd123,01/zxc321,02/ert435,02/fgh987,03/vbn764}.csv';
from https://stackoverflow.com/questions/18277533/load-multiple-files-with-piglatin-hadoop by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 하이브는 distcp로 디렉토리 이동 프로세스를 덮어 씁니까? (0) | 2019.07.31 |
---|---|
[HADOOP] 하이브의 로컬 CSV에 따옴표가있는 값을 묶은 테이블 내보내기 (0) | 2019.07.31 |
[HADOOP] 하이브 동시 매퍼를 4 개 이상으로 늘리는 방법은 무엇입니까? (0) | 2019.07.31 |
[HADOOP] 하둡에서 매퍼 출력이 저장되는 위치는 어디입니까? (0) | 2019.07.31 |
[HADOOP] MapReduce에게 사용할 매퍼의 수를 알려주는 방법은 무엇입니까? (0) | 2019.07.31 |