I encountered your problem, you can handle as follows

There are two ways to add field

One is append(object) function, the other is set(index,object) function

my code:

DataBag inputBag = (DataBag)input.get(0);

                                for (Tuple t : inputBag) {

                                        if(isDetailUrl(t) > 0){


                                                t.append(this.orderID);

//int tupleSize = t.size();

//t.set(tupleSize+1, this.orderID);

                                                outputBag.add(t);

                                                this.orderID = null;


                                        }

                                }


2013/12/31 Sameer Tilak <ssti...@live.com>

> Hi All,I have a UDF that returns a tuple. The number of elements in the
> tuple will differ for each user. For example:
> (userid1, item1, item2, item 100, item 400)(userid1, item1,
> item200)(userid1, item1, item2, item 100, item200, item250, item300, item
> 400)(userid1, item 100, item 200, item250, item300, item380, item400,
> item450, item480, item560, item800, item1000)
> etc.
> Pig script:
> A = LOAD '/scratch/input.seq' USING $SEQFILE_LOADER ( '-c
> $TEXT_CONVERTER', '-c $TEXT_CONVERTER') AS (key: chararray, value:
> chararray);
> UserItemAssoc = FOREACH A GENERATE myparser.myUDF(key, value) AS {(userid:
> chararray, itemtid: How to specify this???)};
> If I want to specify the schema in the AS clause, how do I do it since the
> number of fields will differ in each row? Is it possible to somehow do this
> dynamically?
>




-- 
cente...@gmail.com|齐忠

Reply via email to