I recognize this example ;) You reference struct elements with the dot notation, as Bejoy said, map elements with what you tried, deductions['Federal taxes'], and arrays by index, starting from zero, subordinates[0].
On Fri, Mar 8, 2013 at 6:35 AM, <bejoy...@yahoo.com> wrote: > Hi Sai > > > You can do it as > Select address.country from employees; > > Regards > Bejoy KS > > Sent from remote device, Please excuse typos > ------------------------------ > *From: * Bennie Schut <bsc...@ebuddy.com> > *Date: *Fri, 8 Mar 2013 09:09:49 +0100 > *To: *user@hive.apache.org<user@hive.apache.org>; 'Sai Sai'< > saigr...@yahoo.in> > *ReplyTo: * user@hive.apache.org > *Subject: *RE: Accessing sub column in hive > > Perhaps worth posting the error. Some might know what the error means.**** > > ** ** > > Also a bit unrelated to hive but please do yourself a favor and don’t use > float to store monetary values like salary. You will get rounding issues at > some point in time when you do arithmetic on them. Considering you are > using hadoop you probably have a lot of data so adding it all up will get > you there really really fast. > http://stackoverflow.com/questions/3730019/why-not-use-double-or-float-to-represent-currency > **** > > ** ** > > ** ** > > *From:* Sai Sai [mailto:saigr...@yahoo.in] > *Sent:* Thursday, March 07, 2013 12:54 PM > *To:* user@hive.apache.org > *Subject:* Re: Accessing sub column in hive**** > > ** ** > > I have a table created like this successfully:**** > > ** ** > > CREATE TABLE IF NOT EXISTS employees (name STRING,salary > FLOAT,subordinates ARRAY<STRING>,deductions MAP<STRING,FLOAT>,address > STRUCT<street:STRING, city:STRING, state:STRING, zip:INT, country:STRING>) > **** > > ** ** > > I would like to access/display country column from my address struct.**** > > I have tried this:**** > > ** ** > > select address["country"] from employees;**** > > ** ** > > I get an error.**** > > ** ** > > Please help.**** > > ** ** > > Thanks**** > > Sai**** > -- *Dean Wampler, Ph.D.* thinkbiganalytics.com +1-312-339-1330