2015-06-19 57 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) 
相關問題