我一直在尋找通過類pyspark.mllib.feature.IDFModelPython PysSpark代碼:這不是一個無限循環嗎?
在
我很困惑,爲什麼這不會產生一個無限循環的PySpark代碼?
這是類代碼:
class IDFModel(JavaVectorTransformer):
def transform(self, x):
return JavaVectorTransformer.transform(self, x)
,這是爲JavaVectorTransformer類
class JavaVectorTransformer(JavaModelWrapper, VectorTransformer):
def transform(self, vector):
if isinstance(vector, RDD):
vector = vector.map(_convert_to_vector)
else:
vector = _convert_to_vector(vector)
return self.call("transform", vector)
IDFModel.transform()
電話JavaVectorTransformer.transform
這反過來又返回self.call("transform",vector)
奇怪的是,這似乎代碼在沒有創建無限循環的情況下工作。
有什麼想法?
self.call不是對同一方法的調用。在調用self.call時會調用父類JavaModelWrapper中稱爲「調用」的方法。 –