Many thanks to all. The following command returned records like: hive>select map_keys(myfield) from mytable; ["some_key1","some_key2","some_key3"] ["some_key1","some_key2","some_key3"]
hive>select explode(arr) as arr from (select map_keys(myfield) from mytable ); hive>select explode(arr) as arr (select map_keys(myfield) from mytable ) ; Both the above queries give syntax error. Is there a sample UDF program that could parse a MAP field in hive? ________________________________ From: Stephen Sprague <[email protected]> To: [email protected] Sent: Thursday, July 25, 2013 2:01 PM Subject: Re: Parse MAP viarable Keys in HIVE that sure looks like a nice candidate for a UDF, eh? Come to think of it i'm surprised there isn't a jar file out there in openSource land that contains higher order functions already. On Thu, Jul 25, 2013 at 11:20 AM, Arafat, Moiz <[email protected]> wrote: Try this: > > >select >distinct arr --- Distinct Values >from >( >select >explode(arr) as arr -- Breaks Array in every column, as separate row . >( >select >map_keys(KV) as arr -- Returns an array of the Key Names for every row >. >from ><table Name> >)a >) c >order by arr; > > >Thanks, >Moiz > > > >On Jul 25, 2013, at 2:08 PM, R J <[email protected]> wrote: > >Hi All, >> >> >>I have a table in Apache Hive and I am interested in a specific field of the >>table. Table name: Table1 and field name f1. The field f1 is of type >>MAP<string, string>. >> >>The table is huge. How could I find the distinct key values of the MAP >>variable f1 above? >> >>I tried: >>$hive -e "select distinct map_keys(f1) from Table1;" >>$hive -e "select k from Table1 LATERAL VIEW explode(f1) et as k,v;" >> >>Each of the above returned syntax error. Could you please help. >> >>If the existing values for a few fields of the table ate: >><x, y> >><x, p> >><m, n> >><empty> >><m, m> >><p, q> >> >>I want the return to be: >>x >>m >>p >> >>Thanks a lot. >> >> >> >> >> >
