In command line, shell will interpret * inside " " to file names in the current 
directory. You probably want to try single quote or put the query in a file and 
run hive -f file.q

Ning

On Mar 5, 2010, at 6:12 AM, prakash sejwani wrote:

hi all,
       I have one hive query when i run from hive console like this

hive> FROM (SELECT h.*,p.title AS product_sku, p.description AS 
product_name,c.name<http://c.name/> AS company_name,c2.id<http://c2.id/> AS 
product_company_id,c2.name<http://c2.name/> AS product_company_name FROM 
(SELECT ip, ident, user,time, dt, cast(regexp_extract(resource, 
'/products/(\\d+<smb://d+>)', 1) AS INT) AS product_id, 
cast(regexp_extract(resource, '/companies/(\\d+<smb://d+>)', 1) AS INT) AS 
company_id FROM a_log) h LEFT OUTER JOIN products p ON (h.product_id = 
p.id<http://p.id/>) LEFT OUTER JOIN companies c ON (h.company_id = 
c.id<http://c.id/>) LEFT OUTER JOIN companies c2 ON (p.company_id = 
c2.id<http://c2.id/>) WHERE h.product_id IS NOT NULL OR h.company_id IS NOT 
NULL) hit INSERT OVERWRITE TABLE product_hits SELECT ip, time, dt,product_id, 
product_company_id AS company_id,'', product_name, product_company_name AS 
company_name WHERE product_name IS NOT NULL INSERT OVERWRITE TABLE company_hits 
SELECT ip, time, dt,company_id,'',company_name WHERE company_name IS NOT NULL;

it runs properly and inser the dat in all the table repectively

and when i run the query like this

[ prakash: ~/rorwork/work/ ]$ $HIVE_HOME/bin/hive -e "FROM (SELECT h.*,p.title 
AS product_sku, p.description AS product_name,c.name<http://c.name/> AS 
company_name,c2.id<http://c2.id/> AS 
product_company_id,c2.name<http://c2.name/> AS product_company_name FROM 
(SELECT ip, ident, user,time, dt, cast(regexp_extract(resource, 
'/products/(\\d+<smb://d+>)', 1) AS INT) AS product_id, 
cast(regexp_extract(resource, '/companies/(\\d+<smb://d+>)', 1) AS INT) AS 
company_id FROM a_log) h LEFT OUTER JOIN products p ON (h.product_id = 
p.id<http://p.id/>) LEFT OUTER JOIN companies c ON (h.company_id = 
c.id<http://c.id/>) LEFT OUTER JOIN companies c2 ON (p.company_id = 
c2.id<http://c2.id/>) WHERE h.product_id IS NOT NULL OR h.company_id IS NOT 
NULL) hit INSERT OVERWRITE TABLE product_hits SELECT hit.ip, hit.time, 
hit.dt,hit.product_id, hit.product_company_id AS company_id,'', 
hit.product_name, hit.product_company_name AS company_name WHERE 
hit.product_name IS NOT NULL INSERT OVERWRITE TABLE company_hits SELECT ip, 
time, dt,company_id,'',company_name WHERE company_name IS NOT NULL;"

it runs the query without error but it doesnt populate the respective tables 
i.e. the product_hits and company_hits table remains empty

thanks,
prakash


Reply via email to