Я создаю кластер и отправляю шаг Pig через AWS CLI. И скрипт PIG, и входной файл для скрипта хранятся в ведре S3.где указать местоположения файлов S3 при отправке программы свиньи через AWS CLI
пример Pig сценарий:
REGISTER file:/usr/lib/pig/lib/piggybank.jar;
DEFINE XPath org.apache.pig.piggybank.evaluation.xml.XPath();
A = LOAD 's3://my-group/myfolder/somedata.xml' USING org.apache.pig.piggybank.storage.XMLLoader('item') AS (x:chararray);
B = FOREACH A GENERATE XPath(x, 'detail');
STORE B INTO 's3://my-group/myfolder/somedetails';
пример CLI:
aws emr create-cluster \
--steps Type=PIG,Name='Pig program',ActionOnFailure=CONTINUE, \
Args=[-f,s3://my-group/myfolder/some_script.pig, \
-p,INPUT=s3://my-group/myfolder,-p,OUTPUT=s3://my-group/myfolder] \
--applications Name=Pig --enable-debugging \
--log-uri s3://my-group/myfolder --release-label emr-5.2.0 \
--instance-groups \
InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m3.2xlarge \
InstanceGroupType=CORE,InstanceCount=5,InstanceType=c1.medium \
--name "Test cluster" --ec2-attributes KeyName=ClusterKeyPair
, который, кажется, работает (по крайней мере, не удалось) ...
но необходимо ли указывать s3://my-group/myfolder
в обоих местах? Если не самый предпочтительный способ написать это?