Hi,
I wanted to read a dataframe in one singleton class and and use that in
another singleton class.
Below is my code -
Class Singleton -
class Singleton(object):
_instances = {}
def __new__(class_, *args, **kwargs):
if class_ not in class_._instances:
class_._instances[class_] = super(Singleton,
class_).__new__(class_, *args, **kwargs)
return class_._instances[class_]
Class A -
from experiment.Singleton import Singleton
class ReadData(Singleton):
data = None
test_field=None
def run(self):
self.data = self.spark.read.option("header", "true").csv(data_path)
self.test_field = 234
Class B -
from experiment.Singleton import Singleton
class Clustering(Singleton):
data = None
test_field=None
def run(self):
read_class_object = ReadData()
number = read_class_object.test_field
print(number)
X = read_class_object.data
print('Showing the DATA READ at Clustering block - ', X)
X.show()
from test_df_bb.classA import ReadData
from test_df_bb.classB import Clustering
obj1 = ReadData()
obj2 = Clustering()
obj1.init()
obj1.run()
obj2.init()
obj2.run()
In the second class, the normal pythonic values like string and integers
are working but the dataframe is coming as None.
Is there any ideal way to call another class and get a dataframe it read
and do operations on several classes? Please help!
Thanks,
Aakash.