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*
> *
> *
>
>

Reply via email to