【发布时间】:2018-04-23 18:47:31
【问题描述】:
使用 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)
【问题讨论】:
-
请将您正在使用的代码附加到问题中。
-
这不是一个愚蠢的问题,所以我不明白反对意见。我从未尝试过集群,但似乎窗口函数可能在这里工作。
标签: apache-spark group-by pyspark k-means