conditions_title
, который вы определили в вашем udf, не соответствует;Кажется, вы пытаетесь определить его как статический член класса, но ссылаетесь на него как на метод экземпляра через self
, а также, поскольку self
в udf здесь не используется, вы можете определить его как статический метод:
from pyspark.sql.functions import udf
from pyspark.sql.types import IntegerType, StringType
class A:
def __init__(self, spark):
# B.__init__(self)
self.spark = spark
def process(self, df):
df = df.withColumn("col_sub_entry", A.conditions_title("entry_title"))
return df
@staticmethod
@udf(IntegerType())
def conditions_title(x: StringType):
if len(x.split(" ")) < 3:
return 0
else :
return 1