我正在尝试使用PySpark数据框来使用PYTHON函数。我需要在输入给出两个 Dataframe ,并希望将结果存储在另一个 Dataframe 中。
我想要使用的Python函数:
@udf(StringType())
def fuzz_ratio(df1, df2):
return np.vectorize(fuzz.token_sort_ratio(df1, df2))
这就是我尝试使用上述函数的方式:
result_df.withcolumn("VAL", fuzz_ratio(col(df1.VAL), col(df2.VAL)))
df1
和df2
是输入。这两个数据框的VAL
列都包含我需要输入到函数fuzz_ratio
的值。输出应保存在result_df
的VAL
列中。
示例:
Val是所有 Dataframe 中的列名。df1
和df2
列val为字符串类型。
1条答案
按热度按时间p3rjfoxz1#
当您将这两个列移动到相同的 Dataframe 时,可以使用类似以下
pandas_udf
的代码。pandas_udf
进行了矢量化以提高性能。它与普通的Sparkudf
不同。输入:
脚本: