eval () не работает внутри UDF в Pyspark - PullRequest
0 голосов
/ 15 января 2020

Следующий код не удался, когда * 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' не определено

...