我试图计算两列之间的欧几里德距离,它们都有浮点列表。我试着用两种方法来使用udf进行计算——一种是在函数内部导入,另一种是在函数外部导入。 第一种方法-
@pandas_udf(T.FloatType(), PandasUDFType.SCALAR)
def calculate_euclidean_distance(feature1, feature2):
features_df = pd.DataFrame({"feature1": feature1, "feature2": feature2})
features_df["euclidean_distance"] = features_df.apply(lambda x: distance.euclidean(x["feature1"], x["feature2"]), axis=1)
return features_df["euclidean_distance"]
第二种方法-
@pandas_udf(T.FloatType(), PandasUDFType.SCALAR)
def calculate_euclidean_distance(feature1, feature2):
from scipy.spatial import distance
import pandas as pd
features_df = pd.DataFrame({"feature1": feature1, "feature2": feature2})
features_df["euclidean_distance"] = features_df.apply(lambda x: distance.euclidean(x["feature1"], x["feature2"]), axis=1)
return
特征\u df[“欧几里德距离”]
他们两个都在我当地的spark工作。我想知道这两种方法有什么区别?你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐