summaryrefslogtreecommitdiff
path: root/boto/emr/step.py
diff options
context:
space:
mode:
Diffstat (limited to 'boto/emr/step.py')
-rw-r--r--boto/emr/step.py39
1 files changed, 39 insertions, 0 deletions
diff --git a/boto/emr/step.py b/boto/emr/step.py
index 15dfe889..1fb0043d 100644
--- a/boto/emr/step.py
+++ b/boto/emr/step.py
@@ -191,3 +191,42 @@ class StreamingStep(Step):
self.name, self.mapper, self.reducer, self.action_on_failure,
self.cache_files, self.cache_archives, self.step_args,
self.input, self.output, self._jar)
+
+class ScriptRunnerStep(JarStep):
+
+ ScriptRunnerJar = 's3n://us-east-1.elasticmapreduce/libs/script-runner/script-runner.jar'
+
+ def __init__(self, name, **kw):
+ JarStep.__init__(self, name, self.ScriptRunnerJar, **kw)
+
+class PigBase(ScriptRunnerStep):
+
+ BaseArgs = ['s3n://us-east-1.elasticmapreduce/libs/pig/pig-script',
+ '--base-path', 's3n://us-east-1.elasticmapreduce/libs/pig/']
+
+class InstallPigStep(PigBase):
+ """
+ Install pig on emr step
+ """
+
+ InstallPigName = 'Install Pig'
+
+ def __init__(self, pig_versions='latest'):
+ step_args = []
+ step_args.extend(self.BaseArgs)
+ step_args.extend(['--install-pig'])
+ step_args.extend(['--pig-versions', pig_versions])
+ ScriptRunnerStep.__init__(self, self.InstallPigName, step_args=step_args)
+
+class PigStep(PigBase):
+ """
+ Pig script step
+ """
+
+ def __init__(self, name, pig_file, pig_versions='latest', pig_args=[]):
+ step_args = []
+ step_args.extend(self.BaseArgs)
+ step_args.extend(['--pig-versions', pig_versions])
+ step_args.extend(['--run-pig-script', '--args', '-f', pig_file])
+ step_args.extend(pig_args)
+ ScriptRunnerStep.__init__(self, name, step_args=step_args)