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

Reply via email to