You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pig.apache.org by da...@apache.org on 2012/03/03 03:16:33 UTC
svn commit: r1296559 - in /pig/branches/branch-0.10: ./ src/org/apache/pig/
src/org/apache/pig/impl/ src/org/apache/pig/scripting/jython/
test/e2e/pig/drivers/ test/e2e/pig/tests/
Author: daijy
Date: Sat Mar 3 02:16:32 2012
New Revision: 1296559
URL: http://svn.apache.org/viewvc?rev=1296559&view=rev
Log:
PIG-2548: Support for providing parameters to python script
Modified:
pig/branches/branch-0.10/CHANGES.txt
pig/branches/branch-0.10/src/org/apache/pig/Main.java
pig/branches/branch-0.10/src/org/apache/pig/impl/PigContext.java
pig/branches/branch-0.10/src/org/apache/pig/scripting/jython/JythonScriptEngine.java
pig/branches/branch-0.10/test/e2e/pig/drivers/TestDriverPig.pm
pig/branches/branch-0.10/test/e2e/pig/tests/turing_jython.conf
Modified: pig/branches/branch-0.10/CHANGES.txt
URL: http://svn.apache.org/viewvc/pig/branches/branch-0.10/CHANGES.txt?rev=1296559&r1=1296558&r2=1296559&view=diff
==============================================================================
--- pig/branches/branch-0.10/CHANGES.txt (original)
+++ pig/branches/branch-0.10/CHANGES.txt Sat Mar 3 02:16:32 2012
@@ -24,6 +24,8 @@ INCOMPATIBLE CHANGES
IMPROVEMENTS
+PIG-2548: Support for providing parameters to python script (daijy)
+
PIG-2518: Add ability to clean ivy cache in build.xml (daijy)
PIG-2533: Pig MR job exceptions masked on frontend (traviscrawford via dvryaboy)
Modified: pig/branches/branch-0.10/src/org/apache/pig/Main.java
URL: http://svn.apache.org/viewvc/pig/branches/branch-0.10/src/org/apache/pig/Main.java?rev=1296559&r1=1296558&r2=1296559&view=diff
==============================================================================
--- pig/branches/branch-0.10/src/org/apache/pig/Main.java (original)
+++ pig/branches/branch-0.10/src/org/apache/pig/Main.java Sat Mar 3 02:16:32 2012
@@ -325,6 +325,8 @@ static int run(String args[], PigProgres
}
+ pigContext.getProperties().setProperty("pig.cmd.args", commandLine);
+
if(logFileName == null && !userSpecifiedLog) {
logFileName = validateLogFile(properties.getProperty("pig.logfile"), null);
}
@@ -487,10 +489,9 @@ static int run(String args[], PigProgres
grunt.run();
return ReturnCode.SUCCESS;
} else {
+ pigContext.getProperties().setProperty(PigContext.PIG_CMD_ARGS_REMAINDERS, ObjectSerializer.serialize(remainders));
+
// They have a pig script they want us to run.
- if (remainders.length > 1) {
- throw new RuntimeException("Encountered unexpected arguments on command line - please check the command line.");
- }
mode = ExecMode.FILE;
FileLocalizer.FetchFileRet localFileRet = FileLocalizer.fetchFile(properties, remainders[0]);
Modified: pig/branches/branch-0.10/src/org/apache/pig/impl/PigContext.java
URL: http://svn.apache.org/viewvc/pig/branches/branch-0.10/src/org/apache/pig/impl/PigContext.java?rev=1296559&r1=1296558&r2=1296559&view=diff
==============================================================================
--- pig/branches/branch-0.10/src/org/apache/pig/impl/PigContext.java (original)
+++ pig/branches/branch-0.10/src/org/apache/pig/impl/PigContext.java Sat Mar 3 02:16:32 2012
@@ -64,6 +64,8 @@ public class PigContext implements Seria
public static final String JOB_NAME = "jobName";
public static final String JOB_NAME_PREFIX= "PigLatin";
public static final String JOB_PRIORITY = "jobPriority";
+ public static final String PIG_CMD_ARGS_REMAINDERS = "pig.cmd.args.remainders";
+
/* NOTE: we only serialize some of the stuff
*
Modified: pig/branches/branch-0.10/src/org/apache/pig/scripting/jython/JythonScriptEngine.java
URL: http://svn.apache.org/viewvc/pig/branches/branch-0.10/src/org/apache/pig/scripting/jython/JythonScriptEngine.java?rev=1296559&r1=1296558&r2=1296559&view=diff
==============================================================================
--- pig/branches/branch-0.10/src/org/apache/pig/scripting/jython/JythonScriptEngine.java (original)
+++ pig/branches/branch-0.10/src/org/apache/pig/scripting/jython/JythonScriptEngine.java Sat Mar 3 02:16:32 2012
@@ -36,6 +36,7 @@ import org.apache.pig.FuncSpec;
import org.apache.pig.PigServer;
import org.apache.pig.backend.executionengine.ExecException;
import org.apache.pig.impl.PigContext;
+import org.apache.pig.impl.util.ObjectSerializer;
import org.apache.pig.impl.util.Utils;
import org.apache.pig.parser.ParserException;
import org.apache.pig.scripting.ScriptEngine;
@@ -351,6 +352,16 @@ public class JythonScriptEngine extends
registerFunctions(scriptFile, null, pigContext);
}
+ if (pigContext.getProperties().get(PigContext.PIG_CMD_ARGS_REMAINDERS)!=null) {
+ try {
+ String[] argv = (String[])ObjectSerializer.deserialize(
+ pigContext.getProperties().getProperty(PigContext.PIG_CMD_ARGS_REMAINDERS));
+ PythonInterpreter.initialize(null, null, argv);
+ } catch (IOException e) {
+ throw new ExecException("Cannot deserialize command line arguments", e);
+ }
+ }
+
Interpreter.setMain(true);
FileInputStream fis = new FileInputStream(scriptFile);
try {
Modified: pig/branches/branch-0.10/test/e2e/pig/drivers/TestDriverPig.pm
URL: http://svn.apache.org/viewvc/pig/branches/branch-0.10/test/e2e/pig/drivers/TestDriverPig.pm?rev=1296559&r1=1296558&r2=1296559&view=diff
==============================================================================
--- pig/branches/branch-0.10/test/e2e/pig/drivers/TestDriverPig.pm (original)
+++ pig/branches/branch-0.10/test/e2e/pig/drivers/TestDriverPig.pm Sat Mar 3 02:16:32 2012
@@ -256,6 +256,10 @@ sub runPigCmdLine
# Add pig file and redirections
push(@cmd, $pigfile);
+
+ if (defined($testCmd->{'additional_cmd_args'})) {
+ push(@cmd, $testCmd->{'additional_cmd_args'});
+ }
my $command= join (" ", @cmd) . " 1> $stdoutfile 2> $stderrfile";
# Run the command
@@ -428,6 +432,9 @@ sub runPig
push(@cmd, $pigfile);
+ if (defined($testCmd->{'additional_cmd_args'})) {
+ push(@cmd, @{$testCmd->{'additional_cmd_args'}});
+ }
# Run the command
print $log "$0::$className::$subName INFO: Going to run pig command: @cmd\n";
Modified: pig/branches/branch-0.10/test/e2e/pig/tests/turing_jython.conf
URL: http://svn.apache.org/viewvc/pig/branches/branch-0.10/test/e2e/pig/tests/turing_jython.conf?rev=1296559&r1=1296558&r2=1296559&view=diff
==============================================================================
--- pig/branches/branch-0.10/test/e2e/pig/tests/turing_jython.conf (original)
+++ pig/branches/branch-0.10/test/e2e/pig/tests/turing_jython.conf Sat Mar 3 02:16:32 2012
@@ -448,7 +448,32 @@ else:
\
,'floatpostprocess' => 1
,'delimiter' => ' '
- }
+ },{
+ 'num' => 13
+ ,'additional_cmd_args' => ['studenttab10k']
+ ,'pig' => q\#!/usr/bin/python
+from org.apache.pig.scripting import Pig
+import sys
+
+P = Pig.compile("A = load ':INPATH:/singlefile/" + sys.argv[1] + "' as (name, age, gpa);" +
+"store A into ':OUTPATH:';");
+
+Q = P.bind()
+
+result = Q.runSingle()
+
+if result.isSuccessful():
+ print "Pig job PASSED"
+else:
+ raise "Pig job FAILED"
+\,
+
+ 'verify_pig_script' => q\A = load ':INPATH:/singlefile/studenttab10k' as (name, age, gpa);
+ store A into ':OUTPATH:';
+\
+ ,'floatpostprocess' => 1
+ ,'delimiter' => ' '
+ }
]
},{
'name' => 'Jython_Diagnostics'