如何通过键将rdd拆分为multiRDD for kmeans

时间:2016-11-03 10:13:08

标签: apache-spark-mllib

我有一个庞大的数据,我把它加载到rdd, 我想按类别对数据进行分析,因此我转换了rdd:

[String] to rdd1:[(String,List[String])]

val dataRdd = sc.textFile(path)
val rdd1[(String,List[String])] = dataRdd.map(....)

我知道我们无法创建嵌套的rdd,所以我可以将rdd1拆分为multirdd用于kmeans吗?

这是数据文件,我想按类别(A,B,C)进行分类 enter image description here

1 个答案:

答案 0 :(得分:0)

如果要分割数据以训练和测试kmeans模型,可以使用:

// Load and parse the data file.
val data = MLUtils.loadLibSVMFile(sc, "data/mllib/sample_libsvm_data.txt")
// Split the data into training and test sets (30% held out for testing)
val splits = data.randomSplit(Array(0.7, 0.3))
val (trainingData, testData) = (splits(0), splits(1))

但问题不是那么清楚......