Home | About | Sematext search-lucene.com search-hadoop.com
NEW: Monitor These Apps!
elasticsearch, apache solr, apache hbase, hadoop, redis, casssandra, amazon cloudwatch, mysql, memcached, apache kafka, apache zookeeper, apache storm, ubuntu, centOS, red hat, debian, puppet labs, java, senseiDB
 Search Hadoop and all its subprojects:

Switch to Threaded View
Pig >> mail # user >> Flatten a bag to a specific datatype


Copy link to this message
-
Re: Flatten a bag to a specific datatype
Hi,

I think UDF BagToTuple should do it for you.
>From some old email thread, I find (I think you will have to change
getBagField to get etc)--

public class BagToTuple extends EvalFunc<Tuple>{
     @Override
     public void exec(Tuple input, Tuple output) throws IOException{
         DataBag bag = input.getBagField(0);
         Iterator<Tuple> iter = bag.content();
         while (iter.hasNext()){
             output.appendField(iter.next().getAtomField(0));
         }
     }
 }

Thanks,
Aniket

On Wed, Jun 22, 2011 at 9:28 AM, Jonathan Holloway <
[EMAIL PROTECTED]> wrote:

> I'm having trouble trying to flatten a bag to a tuple of int's in Pig,
>
> e.g.
>
> {(12),(4),(7),(190)}
>
> to:
>
> (12,4,7,190)
>
> It seems like it should be trivial to do, but not quite sure how to do it.
>  Can this by done with inbuilt Pig
> commands or do i need a custom UDF or an exec?
>
> Many thanks,
> Jon.
>

--
"...:::Aniket:::... Quetzalco@tl"
NEW: Monitor These Apps!
elasticsearch, apache solr, apache hbase, hadoop, redis, casssandra, amazon cloudwatch, mysql, memcached, apache kafka, apache zookeeper, apache storm, ubuntu, centOS, red hat, debian, puppet labs, java, senseiDB