2015-06-19 51 views
0

我想在MLlib中使用管道的实现。要使用管道,应该将LabeledDocument的序列传递到管道(SchemaRDD)。如何将Array [RDD [Row]]转换为SchemaRDD - 或 - 如何分割SchemaRDD,其中结果为SchemaRDD?

创建SchemaRDD如下:

val data = sc.textFile("/test.csv"); 
val parsedData = data.map { line => 
     val parts = line.split(',') 
     LabeledPoint(parts(0).toDouble, Vectors.dense(parts.tail)) 
     }.cache() 
val rddSchema = parsedData.toSchemaRDD; 

我想新rddSchema分成的培训(80%)和测试(20%)。如果我使用randomSplit,它会返回一个Array [RDD [Row]]而不是SchemaRDD

问题:如何变换数组[RDD [行]]SchemaRDD

- 或 -

如何分割SchemaRDD,其中,所述结果是SchemaRDDs

我感谢您的帮助。

回答

0

我知道这是旧的,但你尝试:

val splits = parsedData.randomSplit(Array(0.6, 0.4), seed = 11L) 
val training = splits(0) 
val test = splits(1) 
相关问题