For me in bash it works:

-param COLOR="blue green"

But you can try with \u0020 instead of space:

-param COLOR="blue\u0020green"

Romain

On Mon, Apr 18, 2011 at 4:59 PM, Andreas Paepcke <[email protected]>wrote:

> I'm still struggling with parameter substitution.
> Below are six examples. Two work, the others don't.
> When they don't, I get this error message:
>
>   ERROR org.apache.pig.Main - ERROR 2999: Unexpected internal error.
>      Encountered unexpected arguments on command line - please check the
> command line.
>
> $ pig -param COLOR=blue script.pig             -- Works
> $ pig -param COLOR="blue-green" script.pig     -- Works
> $ pig -param COLOR="blue green" script.pig     -- Fails
> $ pig -param COLOR="'blue green'" script.pig   -- Fails
> $ pig -param COLOR="\'blue green\'" script.pig -- Fails
> $ pig -param COLOR="blue\ green" script.pig    -- Fails
>
> How do I protect spaces so that I can pass multi-word
> parameters into Pig?
>
> Thanks,
>
> Andreas
>
>
> On Tue, Mar 15, 2011 at 7:23 AM, Alan Gates <[email protected]> wrote:
>
> > If you know before you start the script which you want, you can use
> > parameter substitution:
> >
> > A = load 'foo';
> > ...
> > Z = foreach Y generate ...;
> > $DO_OUTPUT
> >
> > Then, depending on which you want, run pig with
> >
> > pig -pDO_OUTPUT='dump Z;';
> >
> > or
> >
> > pig -pDO_OUTPUT="store Z into 'outfile';"
> >
> > If you want to decide which to do based on results of the script, then
> > you'll need the new control flow integration features available in 0.9.
> >  These aren't yet released, but they are in trunk.
> >
> > Alan.
> >
> >
> > On Mar 14, 2011, at 10:40 PM, Andreas Paepcke wrote:
> >
> >  I want to do something really simple: I want to pass a string
> >> into a Pig script. The string is either "stdout" or some target
> >> file name. Say the string gets bound to $OUTPUT. That all
> >> works fine.
> >>
> >> After the script has computed a result R, depending on the
> >> value of $OUTPUT,  I want either to do a dump R (if
> >> $OUTPUT == "stdout"), or a STORE of R into the given
> >> file name that's held in $OUTPUT.
> >>
> >> How do I do that conditional? I played with bincond, but
> >> got stuck.
> >>
> >> Thanks!
> >>
> >> Andreas
> >>
> >>
> >> Andreas
> >>
> >
> >
>

Reply via email to