Geerbte Klassenmethoden geben das übergeordnete Objekt zurück. Es muss dafür gesorgt werden, dass ein Objekt der unterge
Posted: 24 Dec 2024, 21:16
Ich versuche zu prüfen, ob es möglich ist, die PySpark DataFrame-Klasse in Unterklassen zu unterteilen, um meiner Arbeit zusätzliche wiederverwendbare Methoden hinzuzufügen.
Das Problem besteht darin, dass, wenn ich damit neue Datenrahmen erstelle, meine neuen Klassenmethoden immer dann nicht mehr verfügbar sind, wenn ich eine übergeordnete Methode verwende, die ein übergeordnetes Typobjekt zurückgibt.
So, wie man ein Objekt der untergeordneten Klasse für alle übergeordneten Methoden zurückgibt. Eine Option, die ich in Betracht ziehe, ist die Funktion __getattribute__ und versuche, ein untergeordnetes Objekt zurückzugeben, indem ich es in den Namen der untergeordneten Klasse einschließe. Haben wir noch andere Möglichkeiten? Was ich versuche, ist es machbar?
Code: Select all
class EnhancedDataframe(DataFrame):
def __init__(self, df):
super().__init__(df._jdf,df.sql_ctx)
def notNullCount(self,col_name):
return self.filter(col(col_name).isNotNull()).count()
So, wie man ein Objekt der untergeordneten Klasse für alle übergeordneten Methoden zurückgibt. Eine Option, die ich in Betracht ziehe, ist die Funktion __getattribute__ und versuche, ein untergeordnetes Objekt zurückzugeben, indem ich es in den Namen der untergeordneten Klasse einschließe. Haben wir noch andere Möglichkeiten? Was ich versuche, ist es machbar?