我有一个名为'mydataframe'的Spark数据帧,其中包含许多列。我正在尝试仅对两列进行kmeans聚类:纬度和经度(使用它们作为简单值)。我想基于这两个列提取7个簇,然后将集群分配附加到我的原始数据框中。我尝试过:
from numpy import array
from math import sqrt
from pyspark.mllib.clustering import KMeans, KMeansModel
# Prepare a data frame with just 2 columns:
data = mydataframe.select('lat', 'long')
data_rdd = data.rdd # needs to be an RDD
data_rdd.cache()
# Build the model (cluster the data)
clusters = KMeans.train(data_rdd, 7, maxIterations=15, initializationMode="random")
但是一段时间后我收到一个错误信息:
org.apache.spark.SparkException: 由于阶段失败而中止作业:阶段5191.0中的任务1失败了4次,最近失败:在阶段5191.0中丢失了任务1.3(TID 260738,10.19.211.69,执行程序1):org.apache.spark.api.python.PythonException:Traceback(最近调用的最后一次)
我已经尝试过分离和重新连接集群。同样的结果。我做错了什么吗?