You misread what I said. I meant to say that at run time we compile list of variables e.g.
SET a.b.c=some_thing; SET x.y.z=other_thing; then concatenate them with query to come up with a final script, which will look like- SET a.b.c=some_thing; SET x.y.z=other_thing; INSERT OVERWRITE LOCAL DIRECTORY 'file:///${hiveconf:a.b.c}' SELECT FROM some_where; This final script is what gets executed. Thanks, Vinod 2012/7/23 Manisha Gayathri <mani...@wso2.com> > Thanks Vinod. > > I tried concatenating variables. But that is also not possible as I see. > set pqr = concat(foo,bar); > set file_name= home/user/Desktop > > Then the file_name I am getting is *NOT* home/user/Desktop/foo_bar > But what I am getting is, /home/user/Desktop/concat(foo,bar) > > > > On Mon, Jul 23, 2012 at 3:04 PM, Vinod Singh <vi...@vinodsingh.com> wrote: > >> We generate variables dynamically and then create a final script file by >> concatenating variables (SET commands) and Hive queries. Then final script >> is executed. Probably you can adopt something similar approach. >> >> Thanks, >> Vinod >> >> 2012/7/23 Manisha Gayathri <mani...@wso2.com> >> >>> Thanks again Vinod. >>> >>> Will try to find a way to pass the directory URLs from outside then. >>> And it would be grateful if you can direct me to any guide or >>> documentation that describes how to pass values from outside of Hive. >>> >>> Thanks >>> Manisha >>> >>> >>> On Mon, Jul 23, 2012 at 2:08 PM, Vinod Singh <vi...@vinodsingh.com>wrote: >>> >>>> SET commands are handled differently and UDFs can't be invoked there. >>>> IMO you need to pass the directory location value from outside of Hive. >>>> That is how we do. >>>> >>>> Thanks, >>>> Vinod >>>> >>>> 2012/7/23 Manisha Gayathri <mani...@wso2.com> >>>> >>>>> Hi Vinod, >>>>> >>>>> Thanks for the prompt reply. >>>>> Understood your point and sorry for not providing the complete code >>>>> segment earlier. >>>>> >>>>> I have the getFilePath function which should return a URL like this. >>>>> >>>>> home/user/Desktop/logDir/logs/log_0_testServer_2012_07_22 >>>>> >>>>> The defined function works perfectly if I put *getFilePath( >>>>> "0","testServer" ) *into the *select* statement. >>>>> >>>>> But I want to get that particular URL as the *local directory name*. >>>>> (The requirement is such that this should not be hard-coded in the hive >>>>> query. Rather should be generated in the custom UDF. ) >>>>> >>>>> So can I do something like I v shown below? >>>>> >>>>> *set file_name= getFilePath( "0","testServer" ); *//Define a >>>>> parameter.* * >>>>> *.................* >>>>> *..............* >>>>> *INSERT OVERWRITE LOCAL DIRECTORY 'file:///${hiveconf:file_name}' >>>>> *//Assign the above parameter as the file URL >>>>> >>>>> I tried this way. But the directory name is returned as >>>>> >>>>> file:/getFilePath( "0" , "testServer" ) >>>>> >>>>> Does that mean I cannot use UDF to define the local directory name? Or >>>>> am I doing anything wrong in here? >>>>> >>>>> Thanks >>>>> Manisha >>>>> >>>>> On Mon, Jul 23, 2012 at 1:47 PM, Vinod Singh <vi...@vinodsingh.com>wrote: >>>>> >>>>>> The output path in this query is already parameterized- >>>>>> >>>>>> *INSERT OVERWRITE LOCAL DIRECTORY 'file:///${hiveconf:file_name}'* >>>>>> >>>>>> Though UDF is not going to be invoked here. >>>>>> >>>>>> Thanks, >>>>>> Vinod >>>>>> >>>>>> >>>>>> 2012/7/23 Manisha Gayathri <mani...@wso2.com> >>>>>> >>>>>>> Hi >>>>>>> >>>>>>> Is there any possibility of defining the output directory of a hive >>>>>>> query using a Hive UDF? >>>>>>> >>>>>>> In my UDF, I am passing 2 parameters (as follows) and this generates >>>>>>> a file-system URL >>>>>>> *getFilePath( "0","testServer" );* >>>>>>> >>>>>>> Can I use the above getFilePath( "0","testServer" ) value, as the >>>>>>> Local Directory location as follows? >>>>>>> *INSERT OVERWRITE LOCAL DIRECTORY 'file:///${hiveconf:file_name}'* >>>>>>> >>>>>>> If above is not the correct way, could you please show me how to do >>>>>>> it? >>>>>>> Your help is much appreciated! >>>>>>> >>>>>>> Thanks >>>>>>> >>>>>>> ~Regards >>>>>>> *Manisha Eleperuma* >>>>>>> Software Engineer >>>>>>> >>>>>>> * >>>>>>> * >>>>>>> >>>>>>> >>>>>> >>>>> >>>>> >>>>> -- >>>>> ~Regards >>>>> *Manisha Eleperuma* >>>>> Software Engineer >>>>> >>>>> >>>>> >>>> >>> >>> >>> -- >>> ~Regards >>> *Manisha Eleperuma* >>> Software Engineer >>> >>> * >>> * >>> >>> >> > > > -- > ~Regards > *Manisha Eleperuma* > Software Engineer > WSO2, Inc.: http://wso2.com > lean.enterprise.middleware > > *mobile: +94 71 8279777* > * > * > >