[HADOOP] 하둡 돼지 : 명령 행 인수 전달하기
HADOOP하둡 돼지 : 명령 행 인수 전달하기
이것을 할 수있는 방법이 있습니까? 예를 들어 처리 할 파일의 이름을 전달합니까?
해결법
-
==============================
1.이것은 다른 질문에서 나타 났지만 명령 줄에 입력 매개 변수를 표시하고로드 할 때 입력 매개 변수를 사용할 수 있습니다. 예를 들면 다음과 같습니다.
이것은 다른 질문에서 나타 났지만 명령 줄에 입력 매개 변수를 표시하고로드 할 때 입력 매개 변수를 사용할 수 있습니다. 예를 들면 다음과 같습니다.
명령 행 :
script.pig :
Amazon Web Services Elastic Map Reduce를 사용하는 경우 '$ input'은 입력 한 내용에 대해 스크립트에 전달되는 내용입니다.
-
==============================
2.당신이 사용할 수있는 ... 1. 매개 변수가 거의없는 경우 -param (-p) 2. 매개 변수가 많은 경우 -param_file (-m)을 사용하십시오.
당신이 사용할 수있는 ... 1. 매개 변수가 거의없는 경우 -param (-p) 2. 매개 변수가 많은 경우 -param_file (-m)을 사용하십시오.
명령 줄 인수의 가치에 따라 두 가지 방법 중 하나를 사용할 수 있습니다. 스크립트를 개발하고 테스트 할 때 -param을 사용합니다. 일단 돼지 스크립트가 배치 프로세싱이나 crontab을 실행할 준비가되면, -param_file을 사용하여 필요한 변경이 있으면 params.init 파일을 쉽게 업데이트 할 수 있습니다.
남자 돼지는 모든 가능한 선택권을 보여줄 것이다.
-m, -param_file path to the parameter file -p, -param key value pair of the form param=val
샘플 코드는 다음과 같습니다.
001,Rajiv,Reddy,21,9848022337,Hyderabad 002,siddarth,Battacharya,22,9848022338,Kolkata 003,Rajesh,Khanna,22,9848022339,Delhi 004,Preethi,Agarwal,21,9848022330,Pune 005,Trupthi,Mohanthy,23,9848022336,Bhuwaneshwar 006,Archana,Mishra,23,9848022335,Chennai 007,Komal,Nayak,24,9848022334,trivendram 008,Bharathi,Nambiayar,24,9848022333,Chennai
fileName='hdfs://horton/user/jgosalia/students.txt' cityName='Chennai'
students = LOAD '$fileName' USING PigStorage(',') AS (id:int, firstname:chararray, lastname:chararray, age:int, phone:chararray, city:chararray); students = FILTER students BY city == '$cityName'; DUMP students;
pig -param fileName='hdfs://horton/user/jgosalia/students.txt' -param cityName='Chennai' filter.pig ... Trimming the logs ... (6,Archana,Mishra,23,9848022335,Chennai) (8,Bharathi,Nambiayar,24,9848022333,Chennai)
pig -param_file params.init filter.pig ... Trimming the logs ... (6,Archana,Mishra,23,9848022335,Chennai) (8,Bharathi,Nambiayar,24,9848022333,Chennai)
참고 : 파일 경로에 절대 경로를 사용하십시오 (매개 변수로 및 -param_file (-m)에 param 파일 경로를 지정할 때).
-
==============================
3.매개 변수를 PIG 스크립트로 전달하는 것은 간단합니다.
매개 변수를 PIG 스크립트로 전달하는 것은 간단합니다.
먼저 돼지에서 $ input_file과 같이 '$'를 사용하여 변수를 표시하십시오. 그런 다음 pig-parameters를 사용하여 스크립트에 매개 변수를 전달하십시오. input_file = '/ path / to / data'
자세한 내용은 다음을 참조하십시오. http://wiki.apache.org/pig/ParameterSubstitution
-
==============================
4.예.
예.
돼지의 param 옵션을 사용하여 명령 행 옵션을 따라 매개 변수를 전달할 수 있습니다.
--customparam.pig --load hdfs/local fs data original = load '$input' using PigStorage('$delimiter'); --filter a specific field value into another bag filtered = foreach original generate $split; --storing data into hdfs/local fs store filtered into '$output';
자세한 정보는 다음을 확인하십시오.
from https://stackoverflow.com/questions/4166154/hadoop-pig-passing-command-line-arguments by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 어떻게 리눅스에서 hdfs의 슈퍼 그룹에 사용자를 추가하려면? [닫은] (0) | 2019.07.09 |
---|---|
[HADOOP] Hadoop MapReduce는 중첩 된 디렉토리를 작업 입력으로 제공합니다. (0) | 2019.07.09 |
[HADOOP] 병렬로 뉴럴 네트워크 교육, 하둡 또는 GPU를 사용하는 것이 더 좋습니까? (0) | 2019.07.09 |
[HADOOP] hadoop fs -put 명령 (0) | 2019.07.09 |
[HADOOP] start-all.sh를 사용하여 hadoop 프로세스를 시작하면 문제가 발생합니다 [닫힘] (0) | 2019.07.09 |