Hi,
I have a relation set of browsers and number of people using each of the form:

_browser_, _total_
firefox,1234
ie,123
chrome,321
ipad,437

Is there any good way I can rotate this, so that the first row dynamically generates columns and I wind up with a result like:

_firefox_, _ie_, _chrome_, _ipad_
1234, 123, 321, 437

The basic Pig I'm using to load what I have so far is along the lines of:

        good = FILTER new BY (browser_identity IS NOT NULL)
                AND (browser_version IS NOT NULL)
                AND (ip_address IS NOT NULL);
         distincted = DISTINCT good
distincted = FOREACH distincted GENERATE browser_identity, browser_version;
         grouped = GROUP distincted BY (browser_identity, browser_version);
         counted = FOREACH grouped GENERATE
             group AS colname, COUNT(distincted) AS total

In case that helps.

I was thinking of writing a udf for this, but figured the output schema would be really annoying to deal with, so I'd ask here first in case there's an easier way, or someone had already done it.

Cheers,
Eli

Reply via email to