Consider typing the schema at the tuple level:

data2 = FOREACH data GENERATE TOTUPLE(CONCAT(f1, f2), f3) AS
my_new_tuple:tuple(field_that_needs_a_name:chararray, f3);

Hope this helps, -Dan


On Tue, Apr 8, 2014 at 9:05 PM, Allan Ortiz <[email protected]> wrote:

> Sorry, I should have also specified the error that I was receiving:
>
> ----------------
> grunt> data2 = FOREACH data GENERATE
> >> TOTUPLE(
> >> CONCAT(f1, f2) AS field_that_needs_a_name,
> >> f3);
> 2014-04-08 17:49:27,946 [main] ERROR org.apache.pig.tools.grunt.Grunt -
> ERROR 1200: <line 14, column 9> mismatched input '(' expecting SEMI_COLON
> Details at logfile: /home/oldman/pig_1397004393407.log
> ----------------
>
> Thanks!
> ----- Original Message -----
>
> From: "Allan Ortiz" <[email protected]>
> To: [email protected]
> Sent: Tuesday, April 8, 2014 5:55:47 PM
> Subject: Is it possible to give an alias to a CONCAT nested in a TOTUPLE?
>
> I am using pig 0.11.1.
>
> Example:
> ---------------
> data:
> a,b,c
>
> data = LOAD 'data' USING PigStorage(',') AS (f1:chararray, f2:chararray,
> f3:chararray);
>
> data2 = FOREACH data GENERATE
> TOTUPLE(
> CONCAT(f1, f2),
> f3);
> ----------------
>
> The above works fine, but if I change the last statement to name the
> result of the CONCAT as so:
> ------------------
> data2 = FOREACH data GENERATE
> TOTUPLE(
> CONCAT(f1, f2) AS field_that_needs_an_alias,
> f3);
> -----------------
> It doesn't work for me. Am I doing things right? If so, is this a bug, or
> should I make a feature request? I have ran into this problem a couple of
> times now.
>
> Thanks,
> Allan
>
>

Reply via email to