0

데이터 파이프 라인에서 간단한 PigActivity를 사용하려고합니다. http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-pigactivity.html#pigactivityAWS 데이터 파이프 라인 사용 PigActivity

입력란 및 출력 입력란은이 활동에 필요합니다. 둘 다 S3DataNode를 사용하도록 설정했습니다. 이 두 DataNode에는 s3 입출력을 가리키는 directoryPath가 있습니다. 나는 원래 파일 경로를 사용하려고하지만, 다음과 같은 오류 있어요 : 나는 또한 S3에있는 사용자 정의 돼지 스크립트를 사용하고

PigActivity requires 'directoryPath' in 'Output' object. 

합니다.

내 질문에 내 스크립트에서 이러한 입력 및 출력 경로를 어떻게 참조합니까?

참조에 제공된 예제는 스테이지 필드 (사용 중지/사용 가능)를 사용합니다. 내 이해 테이블을 데이터를 변환하는 데 사용됩니다. dataFormat 필드를 지정해야하므로이 작업을 수행하고 싶지 않습니다.

Determines whether staging is enabled and allows your Pig script to have access to the staged-data tables, such as ${INPUT1} and ${OUTPUT1}. 

나는 장애인 준비를하고 난 다음 내 스크립트에서 데이터에 액세스하려고 :

input = LOAD '$Input'; 

을하지만 다음과 같은 오류 얻을 :

IOException. org.apache.pig.tools.parameters.ParameterSubstitutionException: Undefined parameter : Input 

내가 사용 시도를 :

input = LOAD '${Input}'; 

그러나 나는 이것도 오류가 발생합니다.

선택적 scriptVariable 필드가 있습니다. 여기에 일종의 매핑을 사용해야합니까? 그냥 작동해야

'당신의 S3에 URI'

LOAD를 사용하여

답변

0

.

일반적으로 스테이징 (테이블 작성)에서 수행되며 스크립트에서 URI에 직접 액세스 할 필요가 없으며 S3DataNode에만 지정하십시오.

0

"pigActivity"의 "stage"속성을 true로 설정했는지 확인하십시오.

내가 스크립트가 아래 나를 위해 일하기 시작 않았다되면 :

part = LOAD ${input1} USING PigStorage(',') AS (p_partkey,p_name,p_mfgr,p_category,p_brand1,p_color,p_type,p_size,p_container); 
grpd = GROUP part BY p_color; 
${output1} = FOREACH grpd GENERATE group, COUNT(part);