its all there in the documentation under "create table" and it seems you got everything right too except one little thing - in your second example there for 'sample data loaded' - instead of '^B' change that to '|' and you should be good. That's the delimiter that separates your two array elements - ie collections.
i guess the real question for me is when you say 'since there is no way to use given delimiter "|" ' what did you mean by that? On Thu, Jun 20, 2013 at 1:42 AM, neha <ms.nehato...@gmail.com> wrote: > Hi All, > > I have 2 questions about complex data types in nested composition. > > 1 >> I did not find a way to provide delimiter information in DDL if one > or more column has nested array/struct. In this case, default delimiter has > to be used for complex type column. > Please let me know if this is a limitation as of now or I am missing > something. > > e.g.: > *DDL*: > hive> create table example(col1 int, col2 > array<struct<st1:int,st2:string>>) row format delimited fields terminated > by ','; > OK > Time taken: 0.226 seconds > > *Sample data loaded:* > 1,1^Cstring1^B2^Cstring2 > > *O/P:* > hive> select * from example; > OK > 1 [{"st1":1,"st2":"string1"},{"st1":2,"st2":"string2"}] > Time taken: 0.288 seconds > > 2 >> For the same DDL given above, if we provide clause* collection items > terminated by '|' *and still use default delimiters (since there is no > way to use given delimiter '|') then the select query shows incorrect data. > Please let me know if this is something expected. > > e.g. > *DDL*: > hive> create table example(col1 int, col2 > array<struct<st1:int,st2:string>>) row format delimited fields terminated > by ',' collection items terminated by '|'; > OK > Time taken: 0.175 seconds > > *Sample data loaded:* > 1,1^Cstring1^B2^Cstring2 > > *O/P: > *hive> select * from > example; > > OK > 1 [{"st1":1,"st2":"string1\u00022"}] > Time taken: 0.141 seconds > ** > Thanks & Regards. >