It would be a @dev internal api I think

If we wanted to go extremely general with post session init, it could be
added to SparkExtensions

def postSessionInit(session: SparkSession) : Unit

Which would allow you to do just about anything after sessionState was done
initialized.

Or if we specifically wanted to allow just functions

def injectFunction(name: String, function: Seq[Expression] => [Expression])
{
  sparkSession.registerFunction(name, function) // Or add to a buffer which
is registered later
}



On Thu, Sep 27, 2018 at 1:16 PM Reynold Xin <r...@databricks.com> wrote:

> Thoughts on how the api would look like?
>
> On Thu, Sep 27, 2018 at 11:13 AM Russell Spitzer <
> russell.spit...@gmail.com> wrote:
>
>> While that's easy for some users, we basically want to load up some
>> functions by default into all session catalogues regardless of who made
>> them. We do this with certain rules and strategies using the
>> SparkExtensions, so all apps that run through our submit scripts get a
>> config parameter added and it's transparent to the user. I think we'll
>> probably have to do some forks (at least for the CliDriver), the
>> thriftserver has a bunch of code which doesn't run under "startWithContext"
>> so we may have an issue there as well.
>>
>>
>>
>> On Wed, Sep 26, 2018, 6:21 PM Mark Hamstra <m...@clearstorydata.com>
>> wrote:
>>
>>> You're talking about users starting Thriftserver or SqlShell from the
>>> command line, right? It's much easier if you are starting a Thriftserver
>>> programmatically so that you can register functions when initializing a
>>> SparkContext and then  HiveThriftServer2.startWithContext using that
>>> context.
>>>
>>> On Wed, Sep 26, 2018 at 3:30 PM Russell Spitzer <
>>> russell.spit...@gmail.com> wrote:
>>>
>>>> I've been looking recently on possible avenues to load new functions
>>>> into the Thriftserver and SqlShell at launch time. I basically want to
>>>> preload a set of functions in addition to those already present in the
>>>> Spark Code. I'm not sure there is at present a way to do this and I was
>>>> wondering if anyone had any ideas.
>>>>
>>>> I would basically want to make it so that any user launching either of
>>>> these tools would automatically have access to some custom functions. In
>>>> the SparkShell I can do this by adding additional lines to the init section
>>>> but I think It would be nice if we could pass in a parameter which would
>>>> point to a class with a list of additional functions to add to all new
>>>> session states.
>>>>
>>>> An interface like Spark Sessions Extensions but instead of running
>>>> during Session Init, it would run after session init has completed.
>>>>
>>>> Thanks for your time and I would be glad to hear any opinions or ideas
>>>> on this,
>>>>
>>> --
> --
> excuse the brevity and lower case due to wrist injury
>

Reply via email to