As u defined in create table hql: fields delimited by blank space. So, the other data is omitted
if you wanna contain rest data at the end of line. I suggest you use org.apache.hadoop.hive.contrib.serde2.RegexSerDe row format instead of default delimited format. Zhiwen Sun On Mon, Mar 11, 2013 at 12:04 PM, 周梦想 <abloz...@gmail.com> wrote: > I have files like this: > 03/11/13 10:59:52 00000ec0 1009 180538126 92041 2300 0 0 7 21|47|20|33|11 > 0:2775 > 03/11/13 10:59:52 00000744 1010 178343610 92042 350 1 0 -1 NULL NULL 22 45 > the format is separated by blank space: > date time threadid gid userid [variable formated data grouped by fields > separated by space ] > > I'd like to create a table like: > > hive> create external table handresult (hdate string,htime string, thid > string, gid int, userid string,ldata string) row format delimited fields > terminated by " "; > OK > > but the above table will only have a part of the data. > select * from handresult; > 03/11/13 10:59:52 00000ec0 1009 180538126 92041 > 03/11/13 10:59:52 00000744 1010 178343610 92042 > > the remain data like "2300 0 0 7 21|47|20|33|11 0:2775 " I can't get. > > while ldata may be variance length and format separated by " " or an > array, the ldata we will parse diferent by each gid. > > how do this? > > Thanks, > Andy Zhou >