+1  agreed

Also as a general script programming practice I check if the variables I am 
going to use are NON empty before using them…nothing related to Hive scripts

If [ ${freq} == "" ]
then
   echo "variable freq is empty…exiting"
   exit 1
Fi



From: Anthony Urso <antho...@cs.ucla.edu<mailto:antho...@cs.ucla.edu>>
Reply-To: "user@hive.apache.org<mailto:user@hive.apache.org>" 
<user@hive.apache.org<mailto:user@hive.apache.org>>
Date: Tuesday, April 30, 2013 7:20 PM
To: "user@hive.apache.org<mailto:user@hive.apache.org>" 
<user@hive.apache.org<mailto:user@hive.apache.org>>, sumit ghosh 
<sumi...@yahoo.com<mailto:sumi...@yahoo.com>>
Subject: Re: Variable resolution Fails

Your shell is expanding the variable ${env:freq}, which doesn't exist in the 
shell's environment, so hive is getting the empty string in that place.  If you 
are always intending to run your query like this, just use ${freq} which will 
be expanded as expected by bash and then passed to hive.

Cheers,
Anthony


On Tue, Apr 30, 2013 at 4:40 PM, sumit ghosh 
<sumi...@yahoo.com<mailto:sumi...@yahoo.com>> wrote:
Hi,

The following variable freq fails to resolve:

bash-4.1$ export freq=MNTH
bash-4.1$ echo $freq
MNTH
bash-4.1$ hive -e "select ${env:freq} as dr  from dual"
Logging initialized using configuration in 
file:/etc/hive/conf.dist/hive-log4j.properties
Hive history 
file=/hadoop1/hive_querylog/sumighos/hive_job_log_sumighos_201304302321_1867815625.txt
FAILED: ParseException line 1:8 cannot recognize input near 'as' 'dr' 'from' in 
select clause
bash-4.1$

Here dual is a table with 1 row.
What am I am doing wrong? When I try to resolve freq - it is empty!!

  $ hive -S -e "select '${env:freq}' as dr  from dual"

  $

Thanks,
Sumit


CONFIDENTIALITY NOTICE
======================
This email message and any attachments are for the exclusive use of the 
intended recipient(s) and may contain confidential and privileged information. 
Any unauthorized review, use, disclosure or distribution is prohibited. If you 
are not the intended recipient, please contact the sender by reply email and 
destroy all copies of the original message along with any attachments, from 
your computer system. If you are the intended recipient, please be advised that 
the content of this message is subject to access, review and disclosure by the 
sender's Email System Administrator.

Reply via email to