我有一个python类,它有如下函数:
class Features():
def __init__(self, json):
self.json = json
def get_email(self):
email = self.json.get('fields', {}).get('email', None)
return email
我正尝试在pyspark数据框架中使用get\u email函数,基于另一列“raw\u json”创建一个新列,该列由json值组成:
df = data.withColumn('email', (F.udf(lambda j: Features.get_email(json.loads(j)), t.StringType()))('raw_json'))
因此,理想的pysparkDataframe如下所示:
+---------------+-----------
|raw_json |email
+----------------+----------
| |
+----------------+--------
| |
+----------------+-------
但我得到了一个错误,说:
TypeError: unbound method get_email() must be called with Features instance as first argument (got dict instance instead)
我该怎么做才能做到这一点?
我以前也见过类似的问题,但没有解决。
1条答案
按热度按时间bxgwgixi1#
我猜您误解了类在python中的用法。你可能在找这个:
在这里你示例化一个
Features
对象并调用get_email
对象的方法。