@@ -20,6 +20,7 @@ def __getattr__(cls, item):
2020class RumbleSession (object , metaclass = MetaRumbleSession ):
2121 def __init__ (self , spark_session : SparkSession ):
2222 self ._sparksession = spark_session
23+ self ._sparksession .addArtifact (jar_path_str )
2324 self ._jrumblesession = spark_session ._jvm .org .rumbledb .api .Rumble (spark_session ._jsparkSession )
2425
2526 class Builder :
@@ -60,8 +61,18 @@ def __init__(self):
6061 self ._sparkbuilder = SparkSession .builder .config ("spark.jars" , jar_path_str )
6162
6263 def getOrCreate (self ):
63- return RumbleSession (self ._sparkbuilder .getOrCreate ())
64+ if RumbleSession ._rumbleSession is None :
65+ RumbleSession ._rumbleSession = RumbleSession (self ._sparkbuilder .getOrCreate ())
66+ return RumbleSession ._rumbleSession
6467
68+ def create (self ):
69+ RumbleSession ._rumbleSession = RumbleSession (self ._sparkbuilder .create ())
70+ return RumbleSession ._rumbleSession
71+
72+ def remote (self , spark_url ):
73+ self ._sparkbuilder = self ._sparkbuilder .remote (spark_url )
74+ return self
75+
6576 def appName (self , name ):
6677 self ._sparkbuilder = self ._sparkbuilder .appName (name );
6778 return self ;
@@ -83,6 +94,7 @@ def __getattr__(self, name):
8394 return res ;
8495
8596 _builder = Builder ()
97+ _rumbleSession = None
8698
8799 def convert (self , value ):
88100 if isinstance (value , tuple ):
0 commit comments