假设我有一个数据框,看起来像这样:
我希望将结果存储在一个新的列中,这样我的最终数据框将如下所示:
我曾试图将内置函数应用于整个列,以相同方式执行此操作,但出现了错误:
+---+-----------+-----------+
| id| address1| address2|
+---+-----------+-----------+
| 1|address 1.1|address 1.2|
| 2|address 2.1|address 2.2|
+---+-----------+-----------+
我希望直接将自定义函数应用于“address1”和“address2”列中的字符串,例如:
def example(string1, string2):
name_1 = string1.lower().split(' ')
name_2 = string2.lower().split(' ')
intersection_count = len(set(name_1) & set(name_2))
return intersection_count
我希望将结果存储在一个新的列中,这样我的最终数据框将如下所示:
+---+-----------+-----------+------+
| id| address1| address2|result|
+---+-----------+-----------+------+
| 1|address 1.1|address 1.2| 2|
| 2|address 2.1|address 2.2| 7|
+---+-----------+-----------+------+
我曾试图将内置函数应用于整个列,以相同方式执行此操作,但出现了错误:
>>> df.withColumn('result', example(df.address1, df.address2))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 2, in example
TypeError: 'Column' object is not callable
我到底做错了什么,如何在选定的列中应用自定义函数于字符串?
def example(source_name1, source_name2, string1, string2): return json.dumps({source_name1: string1, source_name2: string2})
- Angie