Python 3.x 根据Pyspark 2.2或2.3中的手动质心输入为特征分配预测

Python 3.x 根据Pyspark 2.2或2.3中的手动质心输入为特征分配预测,python-3.x,apache-spark,pyspark,pyspark-dataframes,Python 3.x,Apache Spark,Pyspark,Pyspark Dataframes,我有两张桌子。一个是特征密集向量的大量记录,另一个是密集向量形式的具有质心值(相同特征)的簇数的小表。我需要根据较大表中每一行的所有质心中最小的欧几里德距离,将较小表中的聚类数分配给较大表 Big table: Col A Dense vector 1 Dense vector 2... Small table: Cluster | Centroid dense vector 1 | Dense vector A 2 | Dense vector B... 到目前为止

我有两张桌子。一个是特征密集向量的大量记录,另一个是密集向量形式的具有质心值(相同特征)的簇数的小表。我需要根据较大表中每一行的所有质心中最小的欧几里德距离,将较小表中的聚类数分配给较大表

Big table:
Col A
Dense vector 1
Dense vector 2...

Small table:
Cluster | Centroid dense vector
   1    | Dense vector A
   2    | Dense vector B...
到目前为止,我已经准备好了欧几里德距离的代码:

from scipy.spatial import distance
distance_udf = F.udf(lambda x,y: float(distance.euclidean(x, y)), FloatType())
但我不能在现有的两个表中直接使用它,因为我需要在代码中有两列来计算这个距离。我不知道基于这些质心将这些簇号附加到更大的数据集的最佳方法是什么,我应该如何操作数据以从这里开始