使用 Pyspark,我想将 kmeans 分别应用于数据帧的组,而不是一次应用于整个数据帧。目前,我使用了一个 for 循环,它对每个组进行迭代,应用 kmeans 并将结果附加到另一个表中。但是有很多组会很费时间。有人可以帮我吗??非常感谢!
for customer in customer_list:
temp_df = togroup.filter(col("customer_id")==customer)
df = assembler.transform(temp_df)
k = 1
while (k < 5 & mtrc < width):
k += 1
kmeans = KMeans(k=k,seed=5,maxIter=20,initSteps=5)
model = kmeans.fit(df)
mtric = 1 - model.computeCost(df)/ttvar
a = model.transform(df)select(cols)
allcustomers = allcustomers .union(a)
Run Code Online (Sandbox Code Playgroud)