Следующий код не удался, когда * UDF вызывается eval
. Как это исправить?
### class
class myClass:
def foo(self):
return 'success'
### class method wrapper
def x(var):
f=eval(var)()
return f.foo()
### working fine
print x('myClass')
### if called with udf, will fail
udf1=udf(x)
l=['hello','hello1']
l= [{'a': i} for i in l]
df = spark.createDataFrame(l)
df.withColumn('test',udf1(lit('myClass'))).show()
Вывод: NameError: имя 'myClass' не определено