Re: insert data into a column of complex type

2010-09-24 Thread Ning Zhang
Ping, you cannot insert complex type column by manually input the data. You'll 
need to have the complex typed data stored in some file first (e.g., using 
Thrift serialization or Protocol Buffers), and then load into the table. 

Another option you have is to use JSON/XML to represent map. Hive has UDF/UDTF 
to support extracting data from JSON/XML (json_object, json_tuple, 
xpath_string, xpath_int ...). hive show functions; and hive desc func_name 
will give you more info about these UDFs. 

On Sep 23, 2010, at 5:12 PM, Ping Zhu wrote:

 Hi,
 
   Can we insert data into a column of complex type (eg map type) through hive 
 command line? The only related article I can find is at 
 http://www.mail-archive.com/common-comm...@hadoop.apache.org/msg01031.html: 
 The tables with columns that are an instance of a complex type can only be 
 created programmatically and NOT through hive command line at this time'''. 
 We will be adding ability to add such tables through the hive command line in 
 the future. 
 
   Any new progress on this feature?
 
   Thanks for your information and help.
 
   Ping



Re: insert data into a column of complex type

2010-09-24 Thread John Sichi
There are also undocumented constructor functions named map, struct, and 
array.  These instantiate complex types directly:


hive describe function map;
OK
map(key0, value0, key1, value1...) - Creates a map with the given key/value 
pairs
hive describe function struct;
OK
struct(col1, col2, col3, ...) - Creates a struct with the given field values
Time taken: 0.072 seconds
hive describe function array;
OK
array(n0, n1...) - Creates an array with the given elements
Time taken: 0.071 seconds

I'll add them to the wiki.

JVS

On Sep 24, 2010, at 10:10 AM, Ning Zhang wrote:

Ping, you cannot insert complex type column by manually input the data. You'll 
need to have the complex typed data stored in some file first (e.g., using 
Thrift serialization or Protocol Buffers), and then load into the table.

Another option you have is to use JSON/XML to represent map. Hive has UDF/UDTF 
to support extracting data from JSON/XML (json_object, json_tuple, 
xpath_string, xpath_int ...). hive show functions; and hive desc func_name 
will give you more info about these UDFs.

On Sep 23, 2010, at 5:12 PM, Ping Zhu wrote:

Hi,

  Can we insert data into a column of complex type (eg map type) through hive 
command line? The only related article I can find is at 
http://www.mail-archive.com/common-comm...@hadoop.apache.org/msg01031.html: 
The tables with columns that are an instance of a complex type can only be 
created programmatically and NOT through hive command line at this time'''. We 
will be adding ability to add such tables through the hive command line in the 
future. 

  Any new progress on this feature?

  Thanks for your information and help.

  Ping




Re: insert data into a column of complex type

2010-09-24 Thread Ping Zhu
Thank you, Ning and John for your valuable information. I will try map
function first:)

Ping

On Fri, Sep 24, 2010 at 10:53 AM, John Sichi jsi...@facebook.com wrote:

 There are also undocumented constructor functions named map, struct, and
 array.  These instantiate complex types directly:


 hive describe function map;
 OK
 map(key0, value0, key1, value1...) - Creates a map with the given key/value
 pairs
 hive describe function struct;
 OK
 struct(col1, col2, col3, ...) - Creates a struct with the given field
 values
 Time taken: 0.072 seconds
 hive describe function array;
 OK
 array(n0, n1...) - Creates an array with the given elements
 Time taken: 0.071 seconds

 I'll add them to the wiki.

 JVS

 On Sep 24, 2010, at 10:10 AM, Ning Zhang wrote:

 Ping, you cannot insert complex type column by manually input the data.
 You'll need to have the complex typed data stored in some file first (e.g.,
 using Thrift serialization or Protocol Buffers), and then load into the
 table.

 Another option you have is to use JSON/XML to represent map. Hive has
 UDF/UDTF to support extracting data from JSON/XML (json_object, json_tuple,
 xpath_string, xpath_int ...). hive show functions; and hive desc
 func_name will give you more info about these UDFs.

 On Sep 23, 2010, at 5:12 PM, Ping Zhu wrote:

 Hi,

   Can we insert data into a column of complex type (eg map type) through
 hive command line? The only related article I can find is at
 http://www.mail-archive.com/common-comm...@hadoop.apache.org/msg01031.html:
 The tables with columns that are an instance of a complex type can only
 be created programmatically and NOT through hive command line at this
 time'''. We will be adding ability to add such tables through the hive
 command line in the future. 

   Any new progress on this feature?

   Thanks for your information and help.

   Ping